C6287
advertencia C6287: Código redundante: las subexpresiones de izquierda y derecha son idénticas
Esta advertencia indica que se detectó un elemento redundante en una expresión.
Es difícil juzgar la gravedad de este problema sin examinar el código.Una prueba de duplicados por sí misma es inocua, pero las consecuencias de eliminar la segunda prueba pueden ser graves.Se debe inspeccionar el código para garantizar que no se omitió una prueba.
Ejemplo
El código siguiente genera esta advertencia:
void f(int x)
{
if ((x == 1) && (x == 1))
{
//logic
}
if ((x != 1) || (x != 1))
{
//logic
}
}
El código siguiente muestra distintos métodos para corregir esta advertencia:
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
}
}