C6285C6285

avertissement C6285 : (<constante non nulle > | | <constante non nulle >) est toujours une constante non nulle.warning C6285: (<non-zero constant> || <non-zero constant>) is always a non-zero constant. Souhaitiez-vous utiliser l’opérateur de bits- and (opérateur) ?Did you intend to use the bitwise-and operator?

Cet avertissement indique que deux valeurs de constante supérieures à 1, ont été détectées comme arguments à un opérateur logique- ou une opération qui se produit dans un contexte de test.This warning indicates that two constant values, both greater than one, were detected as arguments to a logical-or operation that occurs in a test context. Cette expression est toujours TRUE.This expression is always TRUE.

Les valeurs de constante supérieurs à un suggèrent que les arguments de la logique- ou pourrait être des champs de bits.Constant values greater than one suggest that the arguments to logical-or could be bit fields. Prendre en compte si un opérateur de bits est peut-être convient mieux dans ce cas.Consider whether a bitwise operator might be a more appropriate operator in this case.

ExempleExample

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

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f()
{
  if (TESTED_VALUE || MASK)
  {
    puts("(TESTED_VALUE || MASK) True");
    // code ...
  }
  else
  {
    puts("(TESTED_VALUE || MASK) False");
    // code ...
  }
}

Pour corriger cet avertissement, utilisez le code suivant :To correct this warning, use the following code:

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f(int flag)
{
  if ((TESTED_VALUE & MASK)== flag)
  {
    puts("true");
    // code ...
  }
  else
  {
    puts("false");
    // code ...
  }
}

Voir aussiSee Also

Expressions avec opérateurs binairesExpressions with Binary Operators