Partager via


Avertissement C6289

Opérateur incorrect : l’exclusion mutuelle est || toujours une constante non nulle. Avez-vous l’intention d’utiliser && à la place ?

Notes

Cet avertissement indique que dans une expression de test, une variable est testée comme inégale à deux constantes différentes. Le résultat dépend de l’une ou l’autre condition étant true, mais elle prend toujours la valeur true.

Ce problème est souvent dû à l’utilisation || à la place de &&, mais peut également être dû à l’utilisation de l’endroit != prévu == .

Nom de l’analyse du code : MUTUALEXCLUSIONOVERORISTRUE

Exemple

Le code suivant génère cet avertissement :

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

Pour corriger cet avertissement, utilisez le code suivant :

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

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