Partilhar via


C6285

Aviso C6285: (< constante diferente de zero > || < constante diferente de zero >) é sempre uma constante diferente de zero.Você pretendia usar o operador bit a bit-operador e?

Este aviso indica que dois valores de constante, maior do que um, foram detectados sistema autônomo argumentos para uma lógica- ou operação ocorre em um contexto de teste.Essa expressão é sempre verdadeiro.

constante valores maiores do que um sugerem que os argumentos para lógico- ou poderia ser campos de bit.Considere se um operador bit a bit, &, pode ser um operador mais apropriado nesse caso.

Exemplo

O código a seguir gera este aviso:

#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...
  }
}

Para corrigir esse aviso, use o operador bit a bit- E operador (&), sistema autônomo mostra o código a seguir:

#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...
  }
}

Consulte também

Referência

Operador AND bitwise: &

Lógica ou operador: ||

Compilador C4127 de aviso (nível 4)