Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » typedef struct vs. struct

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
12.04.2004, 11:51 Uhr
PhilippM



Hallo!

Gibt es einen Unterschied zwischen


C++:
typedef struct
{
    char Name[20];
    int GebJahr;
    int GebMonat;
    int GebTag;
} Person;

Person pers;


und


C++:
struct Person
{
    char Name[20];
    int GebJahr;
    int GebMonat;
    int GebTag;
};

Person pers;


?

LG
Philipp

Dieser Post wurde am 12.04.2004 um 11:52 Uhr von PhilippM editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.04.2004, 13:17 Uhr
Pablo
Supertux
(Operator)


In C++ würde ich sagen nein, in C ja.

Wenn du nur hast


C++:
struct Person
{
    char Name[20];
    int GebJahr;
    int GebMonat;
    int GebTag;
}



dann musst du immer die Variablen so deklarieren:

C++:
struct Person pers;
pers.GebTag=24;
//usw



Wenn du aber typedef benutzet

C++:
typedef struct
{
    char Name[20];
    int GebJahr;
    int GebMonat;
    int GebTag;
} Person;



Dann kannst du schon

C++:
Person pers;
pers.GebJahr=1982;



Mit typedef erzeugst du einen neuen Datentyp.

Ich glaube, dass es in C++ gar keinen Unterschied gibt, das weiß ich leider nicht, weil ich in C++ nicht programmiere.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 12.04.2004 um 14:14 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.04.2004, 14:11 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat:
Pablo postete
Ich glaube, dass in C++ gar keinen Unterschied gibt, das weiß ich leider nicht, weil ich in C++ nicht programmiere.

Ich glaube das stimmt, weil mir der obige Unterschied bisher noch nie aufgefallen ist und der VC++ (mit dem ich ja arbeite) ist ja ein C++ Compiler.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.04.2004, 09:37 Uhr
typecast
aka loddab
(Operator)


@Guybrush Threepwood: Nur weil der VC++ das unterstützt heißt das noch lange nicht, dass das auch Standard ist

Allerdings hast du trotzdem recht. In C++ wird das typedef nicht benötigt. Die Schlüsselwörter struct und class legen automatisch eine neue Klasse an.

Allerdings ist das typedef nicht falsch. Es wird dann einfach ignoriert (Kompabilität zwischen C und C++)
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 13.04.2004 um 09:38 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.04.2004, 09:40 Uhr
Pablo
Supertux
(Operator)



Zitat:
typecast postete
... Es wird dann einfach ignoriert (Kompabilität zwischen C und C++)


Ich würde sagen: Inkompabilität zwischen C und C++
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.04.2004, 09:53 Uhr
typecast
aka loddab
(Operator)


Wiso? Das typedef wird doch unterstützt, da C-Code auch unter einem C++-Compiler kompiliert werden soll.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.04.2004, 10:20 Uhr
Pablo
Supertux
(Operator)


Aber nicht umgekehrt. Wenn du C++ struct ohne typedef mit einem C Compiler kompilieren willst, dann funktioniert das nicht.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.04.2004, 10:39 Uhr
typecast
aka loddab
(Operator)


Ich sehe allerdings auch keinen Sinn C++ Code mit einem C Compiler zu übersetzten.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.04.2004, 10:47 Uhr
Pablo
Supertux
(Operator)


Gibt es auch einen Sinn, C in C++ zu übersetzen?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.04.2004, 10:50 Uhr
typecast
aka loddab
(Operator)


Ja. Du kannst alten C-Code weiterverwenden und musst ihn nicht extra umschreiben (z.B. kannst du die ganzen in C geschriebenen Funktionen problemlos in deine C++ Programme übernehmen).

Wenn das nicht so wäre, dann müsstest du quasi erst mal eine eigene Biblitohek für deine Netzwerkanwendungen schreiben, bevor du ein C++-Programm damit schreiben kannst (nur so als Beispiel).
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: