C6240
C6240 Uyarı: (<expression> & & < sıfır olmayan sabit >) her zaman <expression> sonucunu değerlendirir.Bitsel kullanmak istediniz- ve operatör?
Bu uyarı, biri dışında bir sıfır olmayan sabit değeri sağ tarafında bir mantıksal algılandı gösterir- ve test bağlamında oluşan işlem.Örneğin, ifade (n && 3) için azaltır (!!n), Boolean değeri olan n.
Bu uyarı genellikle bir bit maskesi, denetleme denemesi gösterir Bitsel- ve (&) kullanılmalıdır.Sıfır olmayan sabit kod yolları seçerek seçme kullanımı nedeniyle 1 olarak değerlendirilirse oluşturulmaz.
Örnek
Aşağıdaki kod, bu uyarı oluşturur:
#include <stdio.h>
#define INPUT_TYPE 2
void f(int n)
{
if (n && INPUT_TYPE)
{
puts("boolean value of !!n is true");
}
else
{
puts("boolean value of !!n is false");
}
}
Bu uyarı düzeltmek için Bitsel kullanma- ve aşağıdaki kodda gösterildiği gibi işleci:
#include <stdio.h>
#define INPUT_TYPE 2
void f(int n)
{
if ( (n & INPUT_TYPE) )
{
puts("bitmask true");
}
else
{
puts("bitmak false");
}
}