Compartilhar via


C6285

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

Este aviso indica que os dois valores de constantes, maior do que um, foram detectados como argumentos para uma lógica- ou operação ocorre em um contexto de teste. Essa expressão é sempre verdadeira.

Maiores que aquela de valores constantes sugerem que os argumentos para lógico- ou poderia ser campos de bits. Considere se um operador bit a bit e 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 (e) operador conforme mostrado no 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

Bitwise AND Operator: &

Logical OR Operator: ||