Problem mit TYPEDEF
-
hallo,
ich möchte einen datentyp UNIVERSELL erschaffen:
typedef struct { struct UNIVERSELL *prev; struct UNIVERSELL *next; void *daten; }UNIVERSELL;
allerdings bekomme ich folg. fehlermeldung wenn ich das mache:
:\visual studio\c-projekte\cklausur\unilisten\unitypen.h(18) : error C2371: 'UNIVERSELL' : Neudefinition; unterschiedliche Basistypen x:\visual studio\c-projekte\cklausur\unilisten\unitypen.h(18) : Siehe Deklaration von 'UNIVERSELL' x:\visual studio\c-projekte\cklausur\unilisten\unitypen.h(18) : error C2371: 'UNIVERSELL' : Neudefinition; unterschiedliche Basistypen x:\visual studio\c-projekte\cklausur\unilisten\unitypen.h(18) : Siehe Deklaration von 'UNIVERSELL'
kann typedef keine pointer auf den eigenen typ enthalten wie es structe koennen?
dies wuerde funktionieren:struct UNIVERSELL { struct UNIVERSELL *prev; struct UNIVERSELL *next; void *daten; };
dann muesste ich allerdings ueberall, wo ich nach der oberen definition UNIVERSELL schreiben koennte, struct UNIVERSELL schreiben. dies wuerde ich allerdings gerne umgehen, aber wie??
vielen dank im voraus,
sternenstaub
-
Mach das auf diese Weise:
typedef struct struct_uni UNIVERSELL; struct struct_uni { UNIVERSELL *prev; UNIVERSELL *next; void *daten; };
-
sorry, hat sich alles erledigt!!
die erste definition geht doch, hatte es aber leider in einer header datei versucht, da geht es natürlich nicht...
ich schieb das mal auf die uhrzeit
vielen dank an alle die sich gedanken gamachte haben!!
grüße,
Sternenstaub
-
machst du so:
typedef struct _uni { struct _uni *prev; struct _uni *next; void *daten; } UNIVERSELL;