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