Поделиться через


Предупреждение компилятора (уровень 4) C4127

Обновлен: Ноябрь 2007

Сообщение об ошибке

условное выражение является константой
conditional expression is constant

Управляющее выражение оператора if или цикла while является константой. Если управляющее выражение цикла while является константой из-за того, что цикл прерывается на середине, возможно, следует заменить цикл while на цикл for. Можно опустить инициализацию, тест на завершение и шаг цикла для цикла 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;
   }
}