Pergunta

Eu quero usar alguma estrutura básica em C, como o seguinte:

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

No entanto, não consegue compilar com um error: parse error before "p" na linha com p * next;.

Você tem alguma ideia de qual poderia ser o motivo desse problema?

Foi útil?

Solução

As estruturas c vivem em um espaço para nome diferente e precisam ser explicitamente escopo, assim:

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

E não se esqueça do semicolon no final! :-)

Você pode fingir que está em C ++ assim: typedef struct p { /*...*/ } p;. Mas eu acho que next ainda será declarado como acima.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top