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