C6289
警告 C6289:运算符不正确: 基于 || 的互斥运算为非零常数。是否希望改用 &&?
此警告意味着,在测试表达式中,对照两个不同的常数测试变量,测试结果取决于哪个条件为 true。此运算的计算结果总是为 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
}
}