Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

C6316

Avertissement C6316 : opérateur incorrect : l'expression testée est constante et non nulle. Utiliser l'opérateur de bits AND pour déterminer si les bits sont définis

Cet avertissement indique l'utilisation de l'opérateur de bits OR ( | ) alors que l'opérateur de bits AND (&) aurait dû être utilisé. L'opérateur de bits OR ajoute des bits à l'expression obtenue, alors que l'opérateur de bits AND sélectionne uniquement les bits en commun entre ses deux opérateurs. Les tests pour les indicateurs doivent être exécutés avec l'opérateur de bits AND ou à l'aide d'un test d'égalité.

Le code suivant génère cet avertissement :

#define INPUT_VALUE 2
void f( int Flags)
{
  if (Flags | INPUT_VALUE) // warning
  {
    // code
  }
}

Pour corriger cet avertissement, utilisez le code suivant :

#define ALLOWED 1
#define INPUT_VALUE 2

void f( int Flags)
{
  if ((Flags & INPUT_VALUE) == ALLOWED)
  {
    // code
  }
}

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft