Dela via


Kompilatorvarning (nivå 4) C4706

tilldelning som används som ett villkor

Testvärdet i ett villkorsuttryck är resultatet av en tilldelning.

En tilldelning har ett värde (värdet till vänster om tilldelningen) som kan användas lagligt i ett annat uttryck, inklusive ett testuttryck.

Följande exempel genererar C4706:

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

Ignorera varningen med ((uttryck)). Till exempel:

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

Om din avsikt är att testa en relation, inte att göra en tilldelning, använder du operatorn ==. Följande testar till exempel om a och b är lika med:

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

Om du tänker göra testvärdet till resultatet av en tilldelning testar du för att säkerställa att tilldelningen inte är noll eller icke-null. Följande kod genererar till exempel inte den här varningen:

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