Advertencia C6288
Operador incorrecto: la inclusión mutua sobre && siempre es cero. ¿Tenía intención de usar || en su lugar?
Comentarios
Esta advertencia indica que, en una expresión de prueba, se está probando una variable con dos constantes diferentes. El resultado depende de que ambas condiciones sean verdaderas, lo que es imposible. El código en estos casos indica que la intención del programador no se captura correctamente. Es importante examinar el código y corregir el problema. De lo contrario, el código no se comportará como se esperaba.
Este problema suele deberse al uso &&
de ; en lugar de ||
, pero también puede deberse al uso ==
de dónde !=
estaba previsto.
Nombre del análisis de código: MUTUALINCLUSIONOVERANDISFALSE
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 si la expresión tiene efectos secundarios.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de