Partager via


C6289

avertissement C6289 : Opérateur inexact : l'exclusion mutuelle sur || est toujours une constante non nulle. Souhaitiez-vous utiliser && à la place ?

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 varie selon que l'une ou l'autre condition est True. Elle prend toujours la valeur True.

Ce problème est provoqué en général par l'utilisation de || à la place de &&, mais peut également l'être par l'utilisation de != à la place de ==.

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 
  }
}