Ich programmiere in C in den letzten Jahren und ich entwickelte eine Angewohnheit, die Typedef der Struktur in der Header-Datei zu setzen, und seine Definition in der Quelldatei zu lassen, so dass andere meine verwenden können Dateien ohne sie durcheinander zu bringen. C Struct Definition Standard
// header file
typedef struct s_example EXAMPLE
// source file
struct s_example {
// something
};
ist es etwas falsch es dies zu tun, sollte ich andere wissen lassen, was ich mit meinem structs tun?
Ich frage nur, weil ich viele Leute sehe, die alles in der Header-Datei zeigen.
Wenn alles, was sie behandeln, ein Zeiger ist, ist ein unvollständiger Typ in Ordnung. –
Beachten Sie außerdem, dass in C++ der 'typedef' nicht benötigt wird, da Sie das Schlüsselwort' struct' nicht verwenden müssen, wenn Sie in der Quelle auf den blanken Typ verweisen, wie in C. – aruisdante
Wie kann ein Benutzer? eine Struktur zu verwenden, wenn sie das Format/die Felder nicht sehen können? und eine Struktur sollte NICHT typedef'd sein .. Eine solche typedef'ing verdeckt nur den Code und stört den Compiler-Namespace. Vorschlag: Platziere das struct-Format in der Header-Datei (und vielleicht eine extern-Anweisung, wenn andere Programme auf eine lokale struct-Instanz zugreifen müssen.) – user3629249