Partager via


Avertissement du compilateur (niveau 4) C4706

attribution utilisée comme condition

Remarques

La valeur de test dans une expression conditionnelle est le résultat d’une affectation.

Une affectation a une valeur (la valeur située à gauche de l’affectation) qui peut être utilisée légalement dans une autre expression, y compris une expression de test.

Example

L’exemple suivant génère l’erreur C4706 :

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

Supprimez l’avertissement avec ((expression)). Par exemple:

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

Si votre intention est de tester une relation, et non d’effectuer une affectation, utilisez l’opérateur ==. Par exemple, les tests suivants déterminent si a et b sont égaux :

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

Si vous envisagez de faire de votre valeur de test le résultat d’une affectation, vérifiez afin de vous assurer que l’affectation n'est ni égale à zéro, ni nulle. Par exemple, le code suivant ne génère pas cet avertissement :

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