typedef struct Problem



  • Hallo,
    ich hab ein Problem in der Datei Spieler.h. Wenn ich dort eine Struktur Spieler
    erstellen will die oben schon definiert ist, dann treten 2 seltsame fehler auf.
    Hier ist mal der Compileroutput:
    c:\Dokumente und Einstellungen\juli\Eigene Dateien\Visual c++ Projekte\Bang\Spieler.h(7) : error C2011: 'Spielerstruct' : 'struct' Typneudefinition
    c:\Dokumente und Einstellungen\juli\Eigene Dateien\Visual c++ Projekte\Bang\Spieler.h(7) : Siehe Deklaration von 'Spielerstruct'
    c:\Dokumente und Einstellungen\juli\Eigene Dateien\Visual c++ Projekte\Bang\Spieler.h(19) : error C2086: 'SPIELER Spieler' : Neudefinition
    c:\Dokumente und Einstellungen\juli\Eigene Dateien\Visual c++Projekte\Bang\Spieler.h(19) : Siehe Deklaration von 'Spieler'

    Und hier ist die Datei Spieler.h:

    / DEFINITIONEN
    #define RECHTS true
    #define LINKS  false
    // STRUKTUREN
    typedef struct Spielerstruct {
           int x,y;
    	   int vx,vy;
    	   int Breite,Hoehe;
    	   LPDIRECTDRAWSURFACE7 Akt_Bild;
    	   int Energie;
       } SPIELER, *PSPIELER; 
    // PROTOTYPEN
    bool Spieler_erzeugen(PSPIELER Spieler,int x,int y);
    bool Spieler_bewegen(PSPIELER Spieler,bool Richtung);
    bool Spieler_Ball_Kollision(PSPIELER Spieler);
    bool Spieler_malen(PSPIELER Spieler);
    SPIELER Spieler;
    

    Wisst ihr vielleicht woran das liegt? Danke für eure Hilfe.
    MFG Julian



  • Ab ins C Forum ➡



  • Hallo,
    kann es sein, dass du die Datei mehrfach inkludierst? An dem Code sehe ich jedenfalls nichts falsches. Auch wenn das typedef struct in C++ überflüssig ist. Ein einfaches struct reicht auch.



  • Hallo,
    du hast recht. Aber ich weiß nicht wie ich es schaffen soll, dass ich die Struktur nur einmal definiere. Ich hab dei Datei Main.cpp und 2dFunktionen.cpp.
    Außerdem noch die Headerdateien 2dFunktionen.h , Global.h und Spieler.h.

    2dFunktionen.cpp braucht die define aus Global und Spieler.h

    Main.cpp brauch die defines aus Global ind Spieler.h auch

    Wie kann ich es schaffen, dass ich nicht zweimal includieren muss und nicht der Fehler "Typneudefinition in 2dFunktionen.obj"oder so ähnlich auftritt?
    Danke schon mal im Voraus.
    MFG Julian



  • jube schrieb:

    Aber ich weiß nicht wie ich es schaffen soll, dass ich die Struktur nur einmal definiere.

    zum Beispiel so:

    #ifndef MEINE_HEADER_DATEI
    #define MEINE_HEADER_DATEI
    
    code
    #endif
    

Anmelden zum Antworten