1
4
事实上,它们是相容的。 首先,第6.7.6.2p6节 C standard 关于数组类型的兼容性说明如下:
由此可知,如果两个数组大小都是整数常量表达式(即两者都不是VLA),则它们必须相同。然而,如果一个是VLA,这不适用,因此这使它们兼容。 此外,第6.2.7p3节对复合材料类型进行了如下说明:
这意味着在比较类型时
由于控制表达式与多个选项兼容,即使这些选项彼此不兼容,也会出现编译错误。 |
2
2
它们是兼容的。C 2018 6.7.6.2 6表示,对于要兼容的两种数组类型,两者都应具有兼容的元素类型,如果两个大小说明符都存在,并且都是整数常量表达式,那么两个大小说明符应具有相同的常量值,因为两个大小说明符都不是整数常量表达式,具有相同值的要求不适用。 指针兼容性继承自指向类型。 |
msc · 为什么编译器不给出一个冲突的错误? 7 年前 |
Vikas Yadav · C11相关语言正确性 7 年前 |
Dror K. · 用%p打印空指针是未定义的行为? 7 年前 |
anol · 符合标准的字符串是否可以长于SIZE_MAX字符? 7 年前 |
pablo1977 · 函数调用中的格式良好的配对 8 年前 |
P.P · 评估指向对象存储之外的指针是否未定义? 9 年前 |