考慮下面的代碼:循環中的未初始化局部變量在每次迭代中的值是否相同?
int l;
int k;
for (int i=0; i < 2; ++i)
{
int j;
if (i == 0) l = j;
if (i == 1) k = j;
}
assert (l == k);
是否斷言持有?有趣的是如果未初始化的變量可以在不同的迭代中採用不同的值。
有些玩LLVM的人認爲斷言實際上確實存在:這實際上是由標準保證還是未定義,並且它發生在LLVM編譯器實現它的方式?
請不要通過要求定義未定義的行爲來打擾社區,謝謝。 – 2013-02-02 23:49:19
編譯器錯誤,未定義j和斷言(j == k) – qPCR4vir
@ H2CO3:沒有未定義的行爲。 – ipc