Partager via


C6288

Avertissement C6288 : Opérateur incorrect : l'inclusion mutuelle sur && est toujours égale à zéro. Souhaitiez-vous utiliser || à la place ?

Cet avertissement indique qu'une variable est testée par rapport à deux constantes différentes dans une expression de test et que le résultat varie selon que les deux conditions ont la valeur True ou non. Le code dans ces cas indique que l'intention du programmeur n'est pas correctement capturée. Il est important d'examiner le code et de corriger le problème ; sinon, votre code ne se comporte pas de la manière prévue.

Ce problème est généralement dû à l'utilisation de && à la place de ||, mais il peut également provenir de l'utilisation de == à la place de !=.

Exemple

Le code suivant génère cet avertissement :

void f(int x)
{
  if ((x == 1) && (x == 2)) // warning
  {
    // code ...
  }
}

Pour corriger cet avertissement, utilisez le code suivant :

void f(int x)
{
     if ((x == 1) || (x == 2)) 
     {
          // logic
     }
    
    /* or */
    if ((x != 1) && (x != 2))
    {
        // code ...
    }
}

L'outil d'analyse ne prévient pas si l'expression provoque des effets secondaires.