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