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