C6235
Aviso C6235: (< diferente de zero constante > || <expression>) é sempre uma constante diferente de zero
Este aviso indica que um valor constante diferente de zero, diferente de um, 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 verdadeira.Isso é conhecido como "avaliação de circuito curto."
Um valor constante diferente de zero, diferente de um, sugere que o bit a bit- E operador (&) pode ser criado.Este aviso não é gerado para o idioma comum quando a 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 operador bit a bit- E (&) o operador para corrigir esse 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");
}
}