更新:2007 年 11 月
错误消息
条件表达式是常数
if 语句或 while 循环的控制表达式的计算结果为一个常数。如果 while 循环的控制表达式因该循环中途退出而为一个常数,则应考虑将 while 循环替换为 for 循环。可以忽略导致循环无限继续(类似于 while(1))的 for 循环的初始化、终止测试及循环增量,并且可以通过 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;
   }
}