更新:2007 年 11 月
錯誤訊息
條件運算式是常數
if 陳述式或 while 迴圈 (Loop) 的控制運算式會評估出常數值。如果因為迴圈將在中間結束而致 while 迴圈控制運算式為常數,請考慮以 for 迴圈取代 while 迴圈。您可以省略初始設定,結束測試和 for 迴圈的迴圈遞增,這會造成迴圈成為無限遞迴 (像 while(1)),您可以從 for 陳述式的主體結束迴圈。
下列範例會產生 C4127:
// C4127.cpp
// compile with: /W4
#include <stdio.h>
int main() {
if (1 == 1) {} // C4127
while (1) { break; } // C4127
// OK
for ( ; ; ) {
printf("test\n");
break;
}
}