C6313

 

For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

For the latest documentation on Visual Studio 2017, see C6313 on docs.microsoft.com. warning C6313: Incorrect operator: Zero-valued flag cannot be tested with bitwise-and. Use an equality test to check for zero-valued flags

This warning indicates that a constant value of zero was provided as an argument to the bitwise-and (&) operator in a test context. The resulting expression is constant and evaluates to false; the result is different than intended.

This is typically caused by using bitwise-and to test for a flag that has the value zero. To test zero-valued flags, a test for equality must be performed, for example, using == or !=.

The following code generates this warning:

#define FLAG 0  
  
void f(int Flags )  
{  
  if (Flags & FLAG)  
  {  
    // code  
  }  
}  

To correct this warning, use the following code:

#define FLAG 0  
  
void f(int Flags )  
{  
  if (Flags == FLAG)  
  {  
    // code  
  }  
}  

Show: