Compartilhar via


C6236

Aviso C6236: (<expressão> || <constante não nula>) é 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 direito da realização ou operação que ocorrem em um contexto de teste.Realização o lado esquerdo 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 a não ser que sugere um 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

No código a seguir, n++ não é avaliado como INPUT_TYPE é maior que 1:

#define INPUT_TYPE 2
#include <stdio.h>

void f( int n )
{
   // side effect: n not incremented
   if( n++ || INPUT_TYPE ) //warning 6236 issued
   {
      puts( "Always gets here" );
   }
   else
   {
      puts( "Never enters here" );
   }
}

Os seguintes usos de código bit a bit AND ()&operador decorrigir esse aviso:

#define INPUT_TYPE 2
#include <stdio.h>

void f( int n )
{
   if( n++ & INPUT_TYPE )
   {
      puts( "Bitwise-AND comparison is true" );
   }
   else
   {
      puts( "Bitwise-AND comparison is false" );
   }
}

Consulte também

Outros recursos

Operadores bit a bit C++