Frage

Ich möchte in C einige grundlegende Struktur verwenden, wie folgt aus:

struct p {
    int a;
    int b;
    p * next;
}

Sie vermag jedoch nicht mit einem error: parse error before "p" auf der Linie mit p * next; zu kompilieren.

Haben Sie eine Ahnung, was der Grund für dieses Problem sein könnte?

War es hilfreich?

Lösung

leben C structs in einem anderen Namespace und müssen explizit scoped werden, also:

struct p {
    int a;
    int b;
    struct p * next;
};

Und vergessen Sie nicht das Semikolon am Ende! : -)

Sie können so tun, als Sie in C ++ sind somit: typedef struct p { /*...*/ } p;. Aber ich denke, dass next noch, wie oben erklärt hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top