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