Sdílet prostřednictvím


C6235

upozornění C6235: (< nulová konstantní > || <expression>) je vždy nula konstanta

Toto upozornění znamená, že konstantní hodnotu nula, než jedna, byl nalezen na levé straně logické- nebo operace v kontextu test.Pravé straně logické- nebo operace není vyhodnocena, protože vždy výsledný výraz vyhodnocen jako pravdivý.To se označuje jako "zkratové hodnocení."

Konstantní hodnotu nula, než jedna, naznačuje, že bitového- A operátor (&) byla určena.Toto upozornění není vytvořena pro běžné idiomu nulová konstanta je 1, z důvodu jeho použití pro selektivní povolení cesty kódu, ale je generována, pokud 1, například 1 + 0 vyhodnocen jako nenulová konstanta.

Příklad

Následující kód vygeneruje tato upozornění, protože 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");
   }
}

Následující kód používá bitového- A (&) operátor opravit toto upozornění:

#define INPUT_TYPE 2
void f(int n)
{
   if((INPUT_TYPE & n) == 2)
   {
      puts("bitwise-AND comparison true");
   }
   else
   {
      puts("bitwise-AND comparison false");
   }
}

Viz také

Referenční dokumentace

C logické operátory