C6285
C6285 de aviso: (<non-zero constant> || <non-zero constant>) é sempre uma constante diferente de zero.Você pretende usar a bit de bits e o operador?
Este aviso indica que dois valores constantes, ambos maior de um foram detectados, como argumentos para lógico- ou a operação que ocorrem em um contexto de teste.Esta expressão é sempre VERDADEIRA.
Os valores constantes mais de um sugerem que os argumentos a lógico- ou podem ser campos de bits.Considere se um operador bit a bit pode ser mais um operador apropriado nesse caso.
Exemplo
O código a seguir gera esse 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 este aviso, use o seguinte código:
#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 ...
}
}