Compilerwarnung (Stufe 4) C4127

Aktualisiert: November 2007

Fehlermeldung

Bedingter Ausdruck ist konstant
conditional expression is constant

Der steuernde Ausdruck einer if-Anweisung oder while-Schleife ergibt eine Konstante. Wenn der steuernde Ausdruck einer while-Schleife eine Konstante ist, da die Schleife in der Mitte endet, kann es von Vorteil sein, die while-Schleife durch eine for-Schleife zu ersetzen. Sie können Initialisierung, Terminierungstest und Schleifeninkrement einer for-Schleife unterdrücken, wodurch diese unendlich wird (wie while(1)). Die Schleife kann innerhalb der for-Anweisung verlassen werden.

Im folgenden Beispiel wird C4127 generiert:

// C4127.cpp
// compile with: /W4
#include <stdio.h>
int main() {
   if (1 == 1) {}   // C4127
   while (1) { break; }   // C4127

   // OK
   for ( ; ; ) {
      printf("test\n");
      break;
   }
}