只是好奇,如果我int array[0];
在代码中定义零长度数组,实际上会发生什么?GCC一点也不抱怨。
样例程序
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
澄清度
我实际上是想弄清楚是否以这种方式初始化了零长度数组,而不是像在Darhazer的注释中指出的那样,对可变长度进行了优化。
这是因为我必须向野外发布一些代码,所以我试图确定是否必须处理SIZE
定义为的情况0
,这在某些静态定义的代码中发生int array[SIZE];
实际上,我很惊讶GCC没有投诉,这引起了我的疑问。从我收到的答案中,我认为缺少警告的主要原因是支持未使用新的[]语法更新的旧代码。
因为我主要是想知道错误,所以我将隆丁的答案标记为正确的(纳瓦兹是第一个,但还不够完整),其他人则指出了它在尾部填充结构中的实际用途是“正确的”。正是我想要的。
[]
Python甚至""
C语言的目的是什么?有时,您有一个需要数组的函数或宏,但没有任何数据可放入其中。