Probleme mit der struct Anweisung



  • // test.c

    #include <stdio.h>

    struct MeineSache
    {
    int t1;
    int t2;
    };

    int main()
    {
    MeineSache x;
    x.t1=21;
    printf("%i",x.t1);
    }

    Visual Studio will mir das Programm nicht kompilieren, wenn ich es als ein C-Programm abspeichere. Fehlermeldung: "MeineSache ist nicht deklariert"
    Wenn ich es aber als ein cpp Programm abspeichere, dann klappt das. Wo ist der Fehler?

    Mit dem Borland Compiler aber klappt das ohne Probleme, auch wenn ich das als ein C Programm abspeichere. Kann mir da einer weiterhelfen.

    VIelen dank im Voraus.

    Mfg Magda008



  • Ja, das sind die kleinen, aber feinen Unterschiede zwischen C und C++ 😉

    Für C sind "struct MeineSache" und "MeineSache" zwei völlig unabhängige Namen - wenn du die struct verwenden willst, mußt du den kompletten Namen angeben (oder dir einen typedef struct MeineSache{...}MeineSache; anlegen). In C++ sind beide Schreibweisen identisch.



  • So funktionierts:

    int main()
    {
    struct { int t1; int t2; } x; 
    x.t1 = 1;
    }
    

    oder so

    struct MeineSache {int t1; int t2; };
    
    int main()
    {
      struct MeineSache x;
      x.t1 = 1;
    }
    

    Wenn du welche "Art" verwendest.. hängt davon ab wie oft du die Struct benötigst bzw. ob du diese in der Headerdatei für andere definieren willst..

    1. Definiert ne Variable x mit den int Werten
    2. Ist ne Ableitung der struct MeineSache auf x

    😋



  • @ Magda008

    In Zukunft bitte die [cpp]-Tags für Code verwenden. Und den code auch schön formatieren. Danke.



  • Vielen dank für die Antwort.

    Hat mir geholfen mir sehr geholfen.

    Mit freundlichen Grüßen Magda


Anmelden zum Antworten