C6289C6289

avertissement C6289 : opérateur Incorrect : l’inclusion mutuelle sur | | est toujours une constante non nulle.warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Souhaitiez-vous utiliser & & à la place ?Did you intend to use && instead?

Cet avertissement indique que dans une expression de test, une variable est testée par rapport à deux constantes différentes et que le résultat dépend de des conditions est true.This warning indicates that in a test expression a variable is being tested against two different constants and the result depends on either condition being true. Cela a toujours la valeur true.This always evaluates to true.

Ce problème est généralement dû à l’aide de || à la place de &&, mais peut également être dû à l’aide de !=== a été conçu.This problem is generally caused by using || in place of &&, but can also be caused by using != where == was intended.

ExempleExample

Le code suivant génère cet avertissement :The following code generates this warning:

void f(int x)
{
  if ((x != 1) || (x != 3))
  {
    // code
  }
}

Pour corriger cet avertissement, utilisez le code suivant :To correct this warning, use the following code:

void f(int x)
{
  if ((x != 1) && (x != 3))
  {
    // code
  }
}

/* or */
void f(int x)
{
  if ((x == 1) || (x == 3))
  {
    // code
  }
}