警告 C26813
使用 『bitwise and』 來檢查是否已設定旗標
備註
具有兩個成員值之乘冪的大部分 enum
類型都是用來做為位旗標。 因此,您很少想要比較這些旗標是否相等。 相反地,使用位運算擷取您感興趣的位。
程式碼分析名稱:USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS
範例
enum BitWise
{
A = 1,
B = 2,
C = 4
};
void useEqualsWithBitwiseEnum(BitWise a)
{
if (a == B) // Warning C26813: Use 'bitwise and' to check if a flag is set
return;
}
若要修正警告,請使用位運算:
void useEqualsWithBitwiseEnum(BitWise a)
{
if (a & B) // Fixed.
return;
}