【发布时间】:2014-05-01 08:01:47
【问题描述】:
我想知道以下表单的初始化:
int array[] = {
v - 1,
array[0] + 1
} ;
在第二个元素的初始化中,使用了第一个元素的值,但是整个数组还没有初始化。这恰好是用 g++ 编译的,但我不确定这是否真的是可移植的和定义良好的构造?
【问题讨论】:
-
@ptomato:因为并非所有编译器都符合标准——尤其是在像这种奇怪的边缘情况下。
-
@ptomato 在 C 和 C++ 中,“试试看”通常是有问题的。许多编译器具有不兼容和非标准的扩展,许多未定义的行为在单个平台上的一些测试中可能看起来是一致的。
-
我删除了 C 标签,因为您的问题提到您正在使用 g++ 进行编译
-
@DavidHeffernan 但是,如果 C 和 C++ 的行为不同,他可能希望得到答案?
-
@ChristianRau 没有 C/C++ 之类的东西!!
标签: c++