Supportnet / Forum / Anwendungen(Java,C++...)
Strukturen in C mit typedef anlegen
Frage
Hallo,
ist es sinnvoller Datenstrukturen in C mit oder ohne typedef anzulegen?
Wo liegen die Unterschiede in den beiden Definitionen im folgenden Programm?
void main()
{
struct Satz1 /* ohne typedef */
{
int i1;
int i2;
};
struct Satz1 bsp1;
typedef struct /* mit typedef */
{
int i1;
int i2;
} SATZ2;
SATZ2 bsp2;
int a;
a = bsp1.i1;
a = bsp2.i1;
}
Hintergrund :
Ich möchte mehrere Datenstrukturen in einer externen header-Datei hinterlegen. Diese soll dann in verschiedene Funktionen eingebunden werden, die jeweils nur einzelne Strukturen aus der Gesamtdatei benutzen.
Wenn sich eine Struktur ändert, müssen dann alle Funktionen, die auf die header-Datei zugreifen oder nur die Funktionen, die die geänderte Struktur benutzen, neu übersetzt werden.
Vielen Dank
Ralf
Antwort 1 von Huutsch
Wenn Du Typen zentral ablegst und einen der Typen änderst, dann mußt Du natürlich nur die Programme übersetzten, die einen der geänderten Typen auch benutzen.
Da man aber selten eine Cross-Referenz-Liste zu seinen Typen pflegt, weiß man natürlich selten, welches Programm neu übersetzt werden muß.
Fazit, am Besten vernünftige Makefiles aufbauen in denen die Abhängigkeiten richtig abgelegt sind und diese auch immer schön pflegen und dann einfach mit einem Aufruf alle Programme übersetzten, die einen include auf diese geänderte Header-Datei haben.
Da man aber selten eine Cross-Referenz-Liste zu seinen Typen pflegt, weiß man natürlich selten, welches Programm neu übersetzt werden muß.
Fazit, am Besten vernünftige Makefiles aufbauen in denen die Abhängigkeiten richtig abgelegt sind und diese auch immer schön pflegen und dann einfach mit einem Aufruf alle Programme übersetzten, die einen include auf diese geänderte Header-Datei haben.

