Include-Problem



  • Hi Community

    Alle Codes sind vereinfacht!

    main.cpp

    #include "Typen.h"
    #include "Funktionen.h"
    

    Typen.h

    struct a
    {
      bool a;
      bool b;
    };
    

    Funktionen.h

    void abc(a Daten)
    {
      Daten.a = true;
      Daten.b = true;
    };
    

    Beim Kompilieren erhalte ich "E2303 Typname erwartet" und zwar an der stelle wo die Parameter der Funktion abc sind.

    Vielen Dank für die Lösung meines peinliches Problems... 🙄



  • Ein struct 'a' darf natürlich kein Member des gleichen Names beinhalten. Ist das in deinem Code auch so?

    EDIT: Ist in funktionen.h auch typen.h inkludiert?



  • Nein, es ist in meinem Code anders.
    Wenn ich in Funktionen.h #include "Typen.h" hinzufüge, kommt dass ich das ganze Zeug in Typen.h schon mal deklariert habe (in diesem Fall das Struct a).



  • X.DarkForce.X schrieb:

    Nein, es ist in meinem Code anders.
    Wenn ich in Funktionen.h #include "Typen.h" hinzufüge, kommt dass ich das ganze Zeug in Typen.h schon mal deklariert habe (in diesem Fall das Struct a).

    Dagegen helfen übrigens Include Guards! Die solltest du fast immer im Header unterbringen.



  • Ich habs auch schon mit versucht aber es kommt das selbe wie wenn ich kein include von Typen.h und keine Guards verwenden würde.
    Und übrigens: Wenn ich in Funktionen.h eine neue Funktion schreibe und dann bei Parametern bin und ich die Programmierhilfe aufrufe, stehen meine ganzen Typen von Typen.h in der Liste drin! Ich kann auch eine Variable mit einem Typ aus Typen.h in Funktionen.h erstellen, fehlerfrei!


Anmelden zum Antworten