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