Exporter (0) Imprimer
Développer tout

C6240

Mise à jour : novembre 2007

C6240

Avertissement C6240 : (<expression> && <constante non nulle>) correspond toujours au résultat de <expression>. Souhaitiez-vous utiliser l'opérateur de bits AND ?

Cet avertissement indique qu'une valeur de constante non nulle, autre que 1, a été détectée sur le côté droit d'une opération logique AND qui se produit dans un contexte de test. Par exemple, l'expression (n && 3) se réduit à (!!n), qui est la valeur Boolean de n.

Cet avertissement indique généralement une tentative de vérification d'un masque de bits dans lequel l'opérateur de bits AND (&) doit être utilisé. Il n'est pas généré si la constante non nulle est égale à 1 car il est utilisé pour choisir de manière sélective des chemins d'accès de code.

Le code suivant génère cet avertissement :

#include <stdio.h>
#define INPUT_TYPE 2

void f(int n)
{
   if (n && INPUT_TYPE) 
   {
      puts("boolean value of !!n is true");
   }
   else
   {
      puts("boolean value of !!n is false");
   }
}

Pour corriger cet avertissement, utilisez l'opérateur de bits AND, comme indiqué dans le code suivant :

#include <stdio.h>
#define INPUT_TYPE 2

void f(int n)
{
   if ( (n & INPUT_TYPE) )
   {
      puts("bitmask true");
   }
   else
   {
      puts("bitmak false");
   }
}

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft