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