Teilen über


Compilerwarnung (Ebene 4) C4706

Zuweisung wird als Bedingung verwendet

Bemerkungen

Der Testwert in einem bedingten Ausdruck ist das Ergebnis einer Zuordnung.

Eine Zuordnung weist einen Wert (den Wert auf der linken Seite der Zuordnung) auf, der legal in einem anderen Ausdruck verwendet werden kann, einschließlich eines Testausdrucks.

Example

Im folgenden Beispiel wird C4706 generiert:

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if (a = b) // C4706
   {
   }
}

Unterdrücken Sie die Warnung mit ((expression)). Zum Beispiel:

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ((a = b)) // No warning
   {
   }
}

Wenn Sie beabsichtigen, eine Beziehung zu testen und keine Zuordnung vorzunehmen, verwenden Sie den ==-Operator. Die folgenden Tests testen beispielsweise, ob a und b gleich sind:

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if (a == b)
   {
   }
}

Wenn Ihr Testwert das Ergebnis einer Zuweisung darstellen soll, führen Sie einen Test durch, um sicherzustellen, dass die Zuweisung ungleich null oder nicht null ist. Der folgende Code generiert z. B. diese Warnung nicht:

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ((a = b) != 0)
   {
   }
}