不正確的運算符:對的互斥
||一律是非零常數。 您打算改用&&嗎?
備註
這個警告表示,在測試表達式中,變數會測試為不相等的兩個不同常數。 結果取決於任一條件為 true,但一律會評估為 true。
此問題通常是因為使用 || 來取代 &&,但也可能是因為使用 != 預定的位置 == 所造成。
程式碼分析名稱:MUTUALEXCLUSIONOVERORISTRUE
範例
下列程式代碼會產生此警告:
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
}
}