C6287
警告 C6287:冗余代码: 左右两侧的子表达式完全相同
此警告意味着在表达式中检测到冗余元素。
不检查代码,就很难判断此问题的严重性。 重复测试本身是无害的,但是删除第二个测试可能会产生严重的后果。 应当检查代码,以确保测试不被省略。
示例
下面的代码生成此警告:
void f(int x)
{
if ((x == 1) && (x == 1))
{
//logic
}
if ((x != 1) || (x != 1))
{
//logic
}
}
下面的代码演示更正此警告的各种方法:
void f(int x, int y)
{
/* Remove the redundant sub-expression: */
if (x == 1)
{
// logic
}
if (x != 1)
{
// logic
}
/* or test the missing variable: */
if ((x == 1) && (y == 1))
{
// logic
}
if ((x != 1) || (y != 1))
{
// logic
}
}