次の方法で共有


警告 C6288

正しくない演算子: > に対する相互包含は常に 0 です。 代わりに || を使用するつもりでしたか?

解説

この警告は、テスト式で変数が 2 つの異なる定数に対してテストされていることを示します。 結果は両方の条件が true であるかによって異なりますが、これは不可能です。 このような場合のコードは、プログラマーの意図が正しく伝わっていないことを示しています。 コードを調べて問題を修正することが重要です。 そうしないと、コードは期待どおりに動作しません。

この問題は、多くの場合、;の||代わりに; を使用&&することによって引き起こされますが、意図した場所!=を使用==することによっても発生する可能性があります。

コード分析名: MUTUALINCLUSIONOVERANDISFALSE

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

void f(int x)
{
  if ((x == 1) && (x == 2)) // warning
  {
    // code ...
  }
}

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

void f(int x)
{
     if ((x == 1) || (x == 2))
     {
          // logic
     }

    /* or */
    if ((x != 1) && (x != 2))
    {
        // code ...
    }
}

式に副作用がある場合、分析ツールは警告しません。