Avertissement C6240
('expression' && 'constante non nulle'') évalue toujours le résultat de 'expression'. Avez-vous l’intention d’utiliser l’opérateur au niveau du bit ?
Cet avertissement indique qu’une valeur constante autre que zéro a été détectée sur le côté droit d’une opération logique et qui se produit dans un contexte de test. Par exemple, l’expression (n && 3)
est réduite à (!!n)
, qui est la valeur booléenne de n
.
Notes
Cet avertissement indique généralement une tentative d’case activée un masque de bits dans lequel l’opérateur BITwise-AND (&
) doit être utilisé. Elle n’est pas générée si la constante non nulle prend la valeur 1 en raison de son utilisation pour choisir de manière sélective les chemins de code.
Nom de l’analyse du code : LOGICALANDNONZERO
Exemple
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 BITwise-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("bitmask false");
}
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour