我有這樣的代碼:正在使用數組作爲C++中有效的條件表達式嗎?
int main()
{
char buffer[10];
if(buffer) {
return 1;
}
return 0;
}
的Visual C++ 10個解釋這樣的:buffer
衰減到指針,則指針被針對零比較。當用/ O2編譯時,支票被取消,代碼相當於return 1;
。
上面的代碼是否有效? Visual C++編譯它是否正確(我的意思是衰減部分,而不是優化)?
至少,elision優化對我來說似乎是完全明智的。 – 2011-12-20 12:41:16