Avertissement C6288

Opérateur incorrect : l’inclusion mutuelle sur &&& est toujours égale à zéro. Avez-vous l’intention d’utiliser || Place?

Notes

Cet avertissement indique que dans une expression de test, une variable est testée par rapport à deux constantes différentes. Le résultat dépend des deux conditions qui sont vraies, ce qui est impossible. Le code dans ces cas indique que l’intention du programmeur n’est pas capturée correctement. Il est important d’examiner le code et de corriger le problème. Sinon, votre code ne se comporte pas comme vous l’attendiez.

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 : MUTUALINCLUSIONOVERANDISFALSE

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 n’avertit pas si l’expression a des effets secondaires.