Aracılığıyla paylaş


C6313

uyarı C6313: Hatalı işleç: sıfır değerli bayrak bitsel-ve ile test edilemez.Sıfır değerli bayrakları kontrol etmek için eşitlik testini kullanın

Bu uyarı sıfırın sabit değeri test bağlamındaki bitsel-and (&) operatörüne parametre olarak sağlandığını gösterir.Sonuçta elde edilen ifade sabittir ve false değerlendirir; sonuç amaçlanandan farklıdır.

Bu genellikle sıfır değerine sahip bayrakları test etmek için bitsel-and kullanımıyla oluşur.Sıfır deperli bayrakları test etmek için, eşitlik için bir test yapılmalıdır, örneğin, == veya != kullanarak.

Örnek

Aşağıdaki kod bu uyarıyı üretir:

#define FLAG 0

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

Bu uyarıyı düzeltmek için aşağıdaki kodu kullanın:

#define FLAG 0

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