C6288
Actualización: noviembre 2007
C6288
Advertencia C6288: Operador incorrecto: la inclusión mutua de && es siempre cero. ¿Deseaba utilizar || en su lugar?
Esta advertencia indica que en una expresión de prueba se está probando una variable con respecto a dos constantes distintas y el resultado depende de que ambas condiciones sean true. El código en estos casos indica que no se capturó correctamente la intención del programador. Es importante examinar el código y corregir el problema; de lo contrario, el código no se comportará de la manera esperada.
Este problema suele deberse al uso de && en lugar de ||, pero también se puede provocar usando == donde se pretendía usar !=.
Ejemplo
El código siguiente genera esta advertencia:
void f(int x)
{
if ((x == 1) && (x == 2)) // warning
{
// code ...
}
}
Para corregir esta advertencia, utilice el código siguiente:
void f(int x)
{
if ((x == 1) || (x == 2))
{
// logic
}
/* or */
if ((x != 1) && (x != 2))
{
// code ...
}
}
La herramienta de análisis no advierte de si la expresión tiene efectos secundarios.