只是好奇,如果我在代码中定义一个零长度的数组 int array[0];
会发生什么。
样本程序
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
澄清一下
我实际上是想弄清楚这样初始化的零长度数组是否被优化了而不是像达哈泽评论中的变量长度那样被指向。
这是因为我必须将一些代码发布到外部,所以我试图弄清楚是否必须处理 SIZE
被定义为 0
的情况,这种情况发生在一些具有静态定义的 int array[SIZE];
的代码中
我很惊讶海湾合作委员会竟然没有抱怨,这就引出了我的问题。从我收到的答案来看,我相信缺少警告的主要原因是支持没有用新的[]语法更新的旧代码。
因为我主要是想知道这个错误,所以我把 Lundin 的答案标记为正确(Nawaz 的是第一个,但它不是完整的)——其他人指出它实际上用于尾部填充结构,虽然相关,但不完全是我想要的。