C6288
警告 C6288:运算符不正确: 基于 && 的相同运算始终为 0。 是否希望改用 ||?
此警告意味着,在测试表达式中,对照两个不同的常数测试变量,测试结果取决于两个条件是否均为 true。 上述情况下的代码意味着未能正确实现程序员的目的。 检查代码并更正此问题很重要;否则代码会与预期的行为方式不符。
此问题通常是由于使用 && 而不是 || 而导致的,不过在原本应使用 != 的情况下使用 == 也同样会出现此问题。
示例
下面的代码生成此警告:
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 ...
}
}
如果该表达式具有副作用,则分析工具不会发出警告。