我想在C中使用一些基本结构,如下所示:
struct p {
int a;
int b;
p * next;
}
但是,使用error: parse error before "p"
的行p * next;
无法编译。
你知道这个问题的原因是什么吗?
答案 0 :(得分:9)
C结构存在于不同的命名空间中,必须明确确定范围,因此:
struct p {
int a;
int b;
struct p * next;
};
最后不要忘记分号! : - )
你可以伪装成C ++:typedef struct p { /*...*/ } p;
。但我认为next
仍将如上所述声明。