Partilhar via


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");
   }
}

Consulte também

Referência

C operadores Logical