【发布时间】:2012-11-17 15:44:35
【问题描述】:
从此question扩展
我无法理解这段代码。
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的这种行为有什么建议或解释吗?我无法在任何地方找到它的记录。
【问题讨论】:
-
我没有机会查看 C99 标准,所以我仍然不确定它是否在某处指定,+1。
-
@melpomene,或者可能是一个功能?似乎理解该结构稍后在同一文件中定义。
-
@mux:我在标准中查看了它,但找不到然后发布了这个问题。我将不得不再看一次