Sdílet prostřednictvím


C6285

upozornění C6285: (<non-zero constant> || <non-zero constant>) je vždy nulová konstanta.Měli jste v úmyslu použít bitový operátor And?

Toto upozornění signalizuje, že jako logické argumenty byly zjištěny dvě konstantní hodnoty, i větší než 1,- nebo operace, ke kterým dochází v kontextu test.Tento výraz je vždy hodnotu TRUE.

Konstantní hodnoty větší než jedna naznačují, že argumenty logické- nebo by mohly být bitových polí.Zvažte, zda bitový operátor v tomto případě může být vhodnější operátor.

Příklad

Následující kód generuje toto upozornění:

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f()
{
  if (TESTED_VALUE || MASK) 
  {
    puts("(TESTED_VALUE || MASK) True");
    // code ...
  }
  else 
  {
    puts("(TESTED_VALUE || MASK) False");
    // code ...
  }
}

Pro opravu tohoto upozornění použijte následující kód:

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f(int flag)
{
  if ((TESTED_VALUE & MASK)== flag)
  {
    puts("true");
    // code ...
  }
  else
  {
    puts("false");
    // code ...
  }
}

Viz také

Referenční dokumentace

Výrazy s binární operátory