CIs*_*ies 1 c struct compiler-errors
我试图创建一个包含指向其类型的指针的结构:
#include <stdio.h>
struct test{
test* t;
};
int main(){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用gcc编译时,此代码产生了一个错误:
:5:2:错误:未知类型名称'test'
但是在使用g ++进行编译时,它就可以了.
所以我想要了解的是:
1)是什么导致这种差异?我认为如果gcc使用一次通过编译而g ++使用可以解释它的multipass,但据我所知,这不是真的.
2)如何避免此错误并使用指向它自己类型的指针定义结构?(除非没有其他选择,否则我不想使用void*或使用cast)
你必须在test*t之前编写struct来定义指向struct的指针:
struct test* t;
Run Code Online (Sandbox Code Playgroud)
这是C和C++之间的一个不同.