Compartir a través de


C6285

Actualización: noviembre 2007

C6285

Advertencia C6285: (<constante distinta de cero> || <constante distinta de cero>) es siempre una constante distinta de cero. ¿Deseaba utilizar el operador de bit a bit AND?

Esta advertencia indica que se han detectado dos valores constantes, ambos mayores que uno, como argumentos de una operación OR lógica que tiene lugar en un contexto de prueba. Esta expresión siempre es TRUE.

Los valores constantes mayores que uno sugieren que los argumentos de la operación OR lógica podrían ser campos de bits. Considere si podría ser más adecuado en este caso utilizar un operador bit a bit, &.

Ejemplo

El código siguiente genera esta advertencia:

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f()
{
  if (TESTED_VALUE || MASK) 
  {
    puts("(TESTED_VALUE || MASK) True");
    // code...
  }
  else 
  {
    puts("(TESTED_VALUE || MASK) False");
    // code...
  }
}

Para corregir esta advertencia, utilice el operador AND bit a bit (&) como se muestra en el código siguiente:

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f(int flag)
{
  if ((TESTED_VALUE & MASK)== flag)
  {
    puts("true");
    // code...
  }
  else
  {
    puts("false");
    // code...
  }
}

Vea también

Referencia

Bitwise AND Operator: &

Logical OR Operator: ||

Advertencia del compilador (nivel 4) C4127