Partager via


C6313

avertissement C6313 : Opérateur incorrect : impossible de tester l'indicateur de valeur zéro avec l'opérateur de bits AND.Procédez à un test d'égalité pour vérifier la présence d'indicateurs de valeur zéro

Cet avertissement indique qu'une valeur de constante égale à zéro a été fournie comme argument à l'opérateur de bits AND (&) dans un contexte de test.L'expression obtenue est constante et a la valeur false ; le résultat ne correspond pas au résultat prévu.

Cela est généralement dû à l'utilisation de l'opérateur de bits AND pour tester un indicateur de valeur zéro.Pour tester des indicateurs de valeur zéro, un test d'égalité doit être exécuté à l'aide de == ou !=, par exemple.

Exemple

Le code suivant génère cet avertissement :

#define FLAG 0

void f(int Flags )
{
  if (Flags & FLAG)
  {
    // code
  }
}

Pour corriger cet avertissement, utilisez le code suivant :

#define FLAG 0

void f(int Flags )
{
  if (Flags == FLAG)
  {
    // code
  }
}