在著名的Struct hack中使用了不完整的数组类型,并且从 c99 标准开始就允许使用它们。在 c99 标准之前,这些是不允许的。我正在查看标准,但无法得出结论:
结构之外是否允许不完整的数组类型?(我在标准 C99:6.7.2.1.15 中找到的所有参考资料都将其作为结构中的最后一个元素进行讨论)。
那么是否允许按照标准编译以下程序?
int array[];
int main(){return 0;}
我的问题的第二部分是,如果允许这样做,则array
保证能够存储它们类型的至少一个元素int
。