Sto programmando in C negli ultimi anni e ho sviluppato l'abitudine di inserire il typedef della struct nel file di intestazione e di lasciare la sua definizione nel file di origine, in modo che altri possano usare il mio file senza farli incasinare le cose.C struct definition standard
// header file
typedef struct s_example EXAMPLE
// source file
struct s_example {
// something
};
c'è qualcosa di sbagliato a fare questo, devo far sapere agli altri quello che faccio con i miei struct?
mi sto solo chiedendo questo perché vedo un sacco di persone che mostrano tutto nel file di intestazione.
Se tutto ciò che gestiscono è un puntatore, un tipo incompleto va bene. –
Si noti inoltre che in C++, il 'typedef' non è necessario, dal momento che non si deve usare la parola chiave' struct' quando si fa riferimento al tipo di codice nella sorgente come si fa in C. – aruisdante
Come è possibile che un utente sia in grado usare una struct se non riescono a vedere il formato/i campi? e una struct NON dovrebbe essere typedef'd .. Tale typedef'ing oscura solo il codice e ingombra lo spazio dei nomi del compilatore. Suggerimento: inserire il formato struct nel file di intestazione (e magari una dichiarazione extern SE altri programmi devono accedere a un'istanza di struct locale.) – user3629249