typedef struct vs. struct
-
Hallo!
Gibt es einen Unterschied zwischen
typedef struct { char Name[20]; int GebJahr; int GebMonat; int GebTag; } Person; Person pers;
und
struct Person { char Name[20]; int GebJahr; int GebMonat; int GebTag; }; Person pers;
?
LG
Philipp
-
In C schon.
-
denn in C müsste es (ohne das typedef) heißen:
struct Person pers;
-
Nein, es gibt keinen Unterschied. (natürlich bezieht sich alles auf dieses Forum)
-
Also ich kenne nur zweiteres in C++. Ersteres muß definitiv ein Überbleibsel aus alten C-tagen sein.
-
Das zweite lässt sich vorausdeklarieren und macht es dem Compiler einfacher, schöne Namen auszugeben.
-
Mis2com schrieb:
Nein, es gibt keinen Unterschied. (natürlich bezieht sich alles auf dieses Forum)
Sicher gibt es einen Unterschied. Auch in Standard-C++.
Beispiel:
typedef struct { int i; } Foo; Foo f; void Foo(); // Illegal! Foo wurde bereits als struct deklariert
Wohingegen:
struct Foo { int i; }; Foo f; void Foo(); // Legal! Die Funktion Foo übderdeckt nun den Typ Foo // Von nun an kann man die Struktur Foo nur noch über den // "elaborated type specifier" struct Foo ansprechen.
-
OK, tut mir Leid...