Articles of typedef

Ripetuti typedef – non validi in C ma validi in C ++?

Vorrei un riferimento standard per cui il seguente codice triggers un avviso di conformità in C (testato con gcc -pedantic ; “typedef redefinition”), ma va bene in C ++ ( g++ -pedantic ): typedef struct Foo Foo; typedef struct Foo Foo; int main() { return 0; } Perché non posso definire ripetutamente typedef in C? […]

C typedef del puntatore alla struttura

Mi ero imbattuto nel seguente codice: typedef struct { double x; double y; double z; } *vector; È una definizione di tipo valida? Il codice viene compilato e funziona correttamente. Ero solo curioso di sapere se questa è una pratica comune.

Distruttori di tipi predefiniti (int, char ecc.)

In C ++ il seguente codice fornisce un errore del compilatore: void destruct1 (int * item) { item->~int(); } Questo codice è quasi lo stesso, ho appena digitato l’int a un altro tipo e qualcosa di magico accade: typedef int myint; void destruct2 (myint * item) { item->~myint(); } Perché il secondo codice funziona? Un […]

Come definire una struttura typedef contenente puntatori a se stessa?

Sto scrivendo una LinkedList in C, il codice seguente rappresenta la mia definizione di nodo. typedef struct { int value; struct Node* next; struct Node* prev; } Node; Capisco (o penso di farlo) che struct Node non è lo stesso di typedef struct Node . Dato che il mio codice viene compilato ed eseguito come […]

Perché devo usare typedef typename in g ++ ma non VS?

Era da un po ‘che GCC mi aveva catturato con questo, ma è successo oggi. Ma non ho mai capito perché GCC richieda typedef typename nei template, mentre VS e suppongo che ICC no. Il typedef typename è un “bug” o uno standard overstrict o qualcosa che è lasciato agli scrittori del compilatore? Per coloro […]

puntatore typedef const stranezza

per favore considera il seguente codice: typedef struct Person* PersonRef; struct Person { int age; }; const PersonRef person = NULL; void changePerson(PersonRef newPerson) { person = newPerson; } Per qualche ragione, il compilatore si lamenta del valore di sola lettura non assegnabile. Ma la parola chiave const non dovrebbe rendere il puntatore const. Qualche […]

uint8_t vs char unsigned

Qual è il vantaggio dell’uso di uint8_t sul unsigned char in C? So che su quasi tutti i sistemi uint8_t è solo un typedef per il unsigned char , quindi perché usarlo?

Polimorfismo statico C ++ (CRTP) e utilizzo di typedef da classi derivate

Ho letto l’ articolo di Wikipedia sul modello di template curiosamente ricorrente in C ++ per fare il polimorfismo statico (leggi: compile-time). Volevo generalizzarlo in modo da poter modificare i tipi di ritorno delle funzioni in base al tipo derivato. (Sembra che dovrebbe essere ansible poiché il tipo base conosce il tipo derivato dal parametro […]

Esiste un equivalente o una metodologia Java per la parola chiave typedef in C ++?

Venendo da uno sfondo C e C ++, ho trovato l’uso giudizioso di typedef per essere incredibilmente utile. Conosci un modo per ottenere funzionalità simili in Java, che si tratti di un meccanismo, di un pattern o di un altro modo efficace che hai utilizzato?

Dichiarazione anticipata di un typedef in C ++

Perché il compilatore non mi consente di dichiarare un typedef? Supponendo che sia imansible, qual è la migliore pratica per mantenere piccolo il mio albero di inclusione?