次の方法で共有


C6289

警告 C6289: 不適切な演算子です: || を使用した相互排除は常に 0 でない定数となります。 代わりに && を使用しますか?

この警告は、テスト式で 2 つの異なる定数に対して変数がテストされ、結果はいずれかの条件が true であるかによって異なることを示します。 これは常に true に評価されます。

この問題は、通常、&& の代わりに || を使用することによって発生しますが、== の代わりに != を使用した場合にも発生することがあります。

使用例

この警告が発生するコード例を次に示します。

void f(int x)
{
  if ((x != 1) || (x != 3))
  {
    // code 
  }
}

この警告を解決するには、次のコードを使用します。

void f(int x)
{
  if ((x != 1) && (x != 3))
  {
    // code 
  }
}

/* or */
void f(int x)
{
  if ((x == 1) || (x == 3))
  {
    // code 
  }
}