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) 時,分析工具將不會給予警告。