C6313
警告 C6313: 不正確的運算子: 值為零的旗標無法使用位元 AND 測試。 請使用相等測試檢查是否有值為零的旗標
這則警告指出測試內容中提供了零的常數值做為位元 AND (&) 運算子的引數。 結果運算式會是常數,且評估為 false,而此結果會與預期的不同。
這通常是因為使用了位元 AND 測試具有值為零的旗標所致。 若要測試值為零的旗標,必須執行相等測試,例如,使用 == 或 !=。
範例
下列程式碼將產生出這個警告:
#define FLAG 0
void f(int Flags )
{
if (Flags & FLAG)
{
// code
}
}
若要更正這則警告,請使用下列程式碼:
#define FLAG 0
void f(int Flags )
{
if (Flags == FLAG)
{
// code
}
}