Compartilhar via


C6235

Aviso C6235: (<constante não nula> || <a expressão>) é sempre uma constante diferente de zero

Esse aviso indicar que um valor constante diferente de zero, a não ser um, esteve detectado no lado esquerdo da realização ou operação que ocorrem em um contexto de teste.O lado direito realização do ou da operação não for avaliada como a expressão resultante é avaliada sempre para retificar.Isso é conhecido como “procurar um caminho mais curto a avaliação.”

Um valor constante diferente de zero, a não ser um, sugere que bit a bit AND ()&possa ter sido pretendido.Esse aviso não é gerado para o CLR quando a constante diferente de zero é 1, devido ao seu uso para seletivamente habilitar caminhos de código, mas será gerada se a constante diferente de zero é avaliada como 1, por exemplo 1+0.

Exemplo

O código a seguir gerenciar esse 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 bit a bit AND (operador de&) 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");
   }
}

Consulte também

Referência

Operadores lógicos C