从这个问题延伸
我很难理解这段代码。
struct foo myfoo; // --> Is it forward declaration or object creation. ?
struct foo
{
int a;
};
int main()
{
return 0;
}
代码中标有箭头的-->
是前向声明还是对象创建。?
如果那是前向声明,那么什么struct foo;
叫做?如果是对象创建或实例化,那么它如何在结构定义之前创建对象。
在gcc
编译器上它工作正常,但其他编译器给出错误。
gcc -Werror -Wall tst.c -o tst
关于这种行为的任何建议或解释gcc
?我无法在任何地方找到它的记录。