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;
    

Anmelden zum Antworten