Вопрос

Я хочу использовать какую -то базовую структуру в C, например, следующее:

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

Однако он не может компилироваться с error: parse error before "p" на линии с p * next;.

Вы хоть представляете, какая причина может быть для этой проблемы?

Это было полезно?

Решение

С структуру живут в другом пространстве имен и должны быть явно охватываны, таким образом:

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

И не забывайте о полуколоне в конце! :-)

Вы можете притворяться, что в C ++ так: typedef struct p { /*...*/ } p;. Анкет Но я думаю, что next все еще будет объявлено, как указано выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top