struct und typedef



  • Hallo,

    wie funktioniert das mit einen struct für eine verkettete Liste und typedef. Normales struct ist klar, aber nur das Problem der Adressvariable der eigenen Variable.

    typedef struct liste
    {
    int i;
    int x;
    liste *next;
    };
    

    oder

    typedef struct
    {
    int i;
    int x;
    liste *next;
    }liste;
    

    Warum funktioniert das nicht und wie ist es richtig.

    Danke
    worst_case



  • ist beides falsch.

    richtig wäre:

    typedef struct liste
    {
    int i;
    int x;
    struct liste *next;
    } liste;
    

    denn typdef struct foo {} foo;
    ist da sgleiche wie
    struct foo {};
    typdef struct foo foo;

    wobei man bei typdef struct foo {} foo;
    das foo weglassen kann: typedef struct {} foo;
    da dann einfach eine anonyme struct erstellt wird - und sofort getypedeft wird. nur geht das logischerweise nicht, wenn du innerhalb der struct definition den namen der struct brauchst (das typedef wird ja erst erstellt, nachdem die struct fertig ist)


Anmelden zum Antworten