C6288
Aviso C6288: Operador incorreto: inclusão mútua sobre & & é sempre zero. Tenha a intenção de usar a você | | em vez disso?
Este aviso indica que, em uma expressão de teste, uma variável que está sendo testada contra duas constantes diferentes e o resultado depende de ambas as condições sejam verdadeiras. O código nesses casos indica que a intenção do programador não for capturada corretamente. É importante examinar o código e corrigir o problema; Caso contrário, seu código não irão se comportar da maneira esperada.
Geralmente, esse problema é causado por meio de &&; no lugar de ||, mas também podem ser causados por meio de == onde != era pretendida.
Exemplo
O código a seguir gera este aviso:
void f(int x)
{
if ((x == 1) && (x == 2)) // warning
{
// code ...
}
}
Para corrigir esse aviso, use o seguinte código:
void f(int x)
{
if ((x == 1) || (x == 2))
{
// logic
}
/* or */
if ((x != 1) && (x != 2))
{
// code ...
}
}
A ferramenta de análise não avisar se a expressão possui efeitos colaterais.