共用方式為


C6313

更新:2007 年 11 月

警告 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
  }
}