C6235
Aviso C6235: (< constante diferente de zero > || <expressão>) é sempre uma constante diferente de zero
Este aviso indica que um valor constante diferente de zero, Outros daquele, foi detectado no lado esquerdo de uma lógica- ou operação ocorre em um contexto de teste.O lado direito da lógica- ou operação não será avaliada porque a expressão resultante sempre é avaliada como true.Isso é chamado de "avaliação de circuito curto."
Um valor constante diferente de zero, diferente de um, sugere que o bit a bit- E operador (&) ter sido destinado. Este aviso não é gerado para o idioma comum quando constante diferente de zero é 1, por causa de seu uso para habilitar seletivamente os caminhos de código, mas ele é gerado se a constante diferente de zero é avaliado como 1, por exemplo 1 + 0.
Exemplo
O código a seguir gera este aviso porque INPUT_TYPE é 2:
#define INPUT_TYPE 2
void f(int n)
{
if(INPUT_TYPE || n) //warning 6235 issued
{
puts("Always gets here");
}
else
{
puts("Never gets here");
}
}
O código a seguir usa o bit a bit- E (&) operador para corrigir este aviso:
#define INPUT_TYPE 2
void f(int n)
{
if((INPUT_TYPE & n) == 2)
{
puts("bitwise-AND comparison true");
}
else
{
puts("bitwise-AND comparison false");
}
}