C6240C6240

avertissement C6240 : (<expression > & & <constante non nulle >) correspond toujours au résultat de <expression >.warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. Souhaitiez-vous utiliser l’opérateur de bits- and (opérateur) ?Did you intend to use the bitwise-and operator?

Cet avertissement indique qu’une valeur de constante non nulle, autre que 1, a été détectée sur le côté droit d’un opérateur logique- et l’opération qui se produit dans un contexte de test.This warning indicates that a non-zero constant value, other than one, was detected on the right side of a logical-and operation that occurs in a test context. Par exemple, l’expression (n && 3) réduit à (!!n), qui est la valeur booléenne de n.For example, the expression (n && 3) reduces to (!!n), which is the Boolean value of n.

Cet avertissement indique généralement une tentative de vérification d’un masque de bits dans lequel l’opérateur de bits- et (&) opérateur doit être utilisé.This warning typically indicates an attempt to check a bit mask in which the bitwise-AND (&) operator should be used. Il n’est pas généré si la constante non nulle a la valeur 1 en raison de son utilisation pour choisir de manière sélective les chemins de code.It is not generated if the non-zero constant evaluates to 1 because of its use for selectively choosing code paths.

ExempleExample

Le code suivant génère cet avertissement :The following code generates this warning:

#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 au niveau du bit- et opérateur, comme indiqué dans le code suivant :To correct this warning, use bitwise-AND operator as shown in the following code:

#include <stdio.h>  
#define INPUT_TYPE 2  

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

Voir aussiSee Also

& (opérateur)& Operator