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.