Question

Je veux utiliser une struct de base en C comme suit:

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

Cependant, il ne parvient pas à compiler avec un error: parse error before "p" sur la ligne avec p * next;.

Avez-vous une idée de ce que la raison pourrait être à ce problème?

Était-ce utile?

La solution

C struct vivre dans un autre espace de noms et doivent être explicitement scope, ainsi:

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

Et ne pas oublier le point-virgule à la fin! : -)

Vous pouvez prétendre que vous êtes en C ++ ainsi: typedef struct p { /*...*/ } p;. Mais je pense que next aura encore être déclarée comme ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top