C6313
Actualización: noviembre 2007
C6313
Advertencia C6313: Operador incorrecto: no se puede probar la etiqueta con valor cero con el operador AND bit a bit. Utilice una prueba de igualdad para comprobar las etiquetas con valor cero
Esta advertencia indica que se proporcionó un valor de constante de cero como argumento para el operador AND bit a bit (&) en un contexto de prueba. La expresión resultante es constante y se evalúa en false; el resultado es distinto de lo esperado.
Esto suele ser el resultado de la utilización del operador AND bit a bit para probar un indicador que tiene el valor cero. Para probar etiquetas con valor cero, es preciso efectuar una comprobación de la igualdad, por ejemplo, utilizando == o !=.
Ejemplo
El código siguiente genera esta advertencia:
#define FLAG 0
void f(int Flags )
{
if (Flags & FLAG)
{
// code
}
}
Para corregir esta advertencia, utilice el código siguiente:
#define FLAG 0
void f(int Flags )
{
if (Flags == FLAG)
{
// code
}
}