共用方式為


C6288

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

這則警告指出在測試運算式中會根據兩個不同的參數測試變數,而結果會依據條件是否符合而不同。 在這種狀況下,可看出程式碼並未正確地達到程式設計人員想要的目的。 請務必檢查程式碼並更正問題,否則程式碼不會依您的期待執行動作。

這個問題通常是因為使用 && 代替 || 而引起,但也可能是在應該使用 != 時,卻使用了 == 所導致的。

範例

下列程式碼將產生出這個警告:

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 ...
    }
}

當運算式產生副作用 (Side Effect) 時,分析工具將不會給予警告。