0
A
回答
0
在函数体内部,int A[];
是违反约束的。
在函数之外,没有初始化的变量定义被称为暂定义。这一个定义A
是一个未知界限的数组int
。 A
的类型是不完整类型,因为边界尚未知道。可以稍后完成:
int A[];
void f()
{
A[0] = 1;
}
int A[5];
如果省略后者的定义,该程序的行为如同源文件在结束了int A[1];
。
[如果我在C/C++中定义一个0大小的数组,会发生什么情况?](http://stackoverflow.com/questions/9722632/what-happens-if-i-define-a-0- size-array-in-cc) - 编辑:尽管如此,也许不是如此内存相关。 – Marvin
int A [];'在C中不是有效的声明。编译器应该发出诊断消息。 –
@ n.m。它作为C99的一个结构体成员是有效的,并且后面的 – kdopen