Avertissement C6281
Ordre incorrect des opérations : les opérateurs relationnels ont une priorité plus élevée que les opérateurs au niveau du bit
Notes
Cet avertissement indique une erreur possible dans la priorité de l’opérateur, ce qui peut produire des résultats incorrects. Vous devez case activée la priorité et utiliser des parenthèses pour clarifier l’intention. Les opérateurs relationnels (<
, , >
, ==
<=
>=
, !=
) ont une priorité plus élevée que les opérateurs au niveau du bit (&
, |
, ^
).
Nom de l’analyse du code : BITWISERELATIONPRECEDENCEERROR
Exemple
Le code suivant génère cet avertissement :
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if (FORMAT & TYPE != input)
{
// code...
}
}
Le code suivant utilise des parenthèses pour corriger cet avertissement :
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if ((FORMAT & TYPE) != input)
{
// code...
}
}