共用方式為


C6289

警告 C6289: 不正確的運算子: 在互斥的情況下使用 || 運算子,其結果永遠為非零的常數。 您是否想要改用 &&?

這則警告指出在測試運算式中會根據兩個不同的常數測試變數,而結果會依據條件是否符合而不同。 這個必定都會評估為 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 
  }
}