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