我对以下代码有疑问:
int main()
{
int array1 = {1,2,3,4,5}; //error in c++ , warning in c
int array2[] = {1,2,3,4,5};
int array3[5] = {1,2,3,4,5};
}
这段代码在第 3 行给出了错误c++
但不在c
?
I know array1
实际上是一个int
and array2
and array3
是数组,那么为什么不是c
编译器显示错误,但只是警告:“标量初始化中的多余元素”
是否有这样的定义的用途以及为什么它在c
?
它无效 C. 请参阅 C11 6.7.9:
任何初始值设定项都不得尝试为不属于该对象的对象提供值
包含在正在初始化的实体中。
我猜你正在使用 gcc。然后,如果您希望您的程序表现得像严格的标准 C 语言,请按如下方式编译:
gcc -std=c11 -pedantic-errors
gives
错误:标量初始值设定项中的元素过多
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)