Aracılığıyla paylaş


C6239

C6239 Uyarı: (< sıfır olmayan sabit > & & <expression>) her zaman <expression> sonucunu değerlendirir.Bitsel kullanmak istediniz- ve operatör?

Bu uyarı, biri dışında bir sıfır olmayan sabit değer sol tarafında bir mantıksal algılandı gösterir- ve test bağlamında oluşan işlem.Örneğin, ifade ( 2 && n ) için sınırlı (!!n), Boolean değeri olan n.

Bu uyarı genellikle bir bit maskesi, denetleme denemesi gösterir Bitsel- ve (&) operatörü kullanılmalıdır ve 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(INPUT_TYPE && n) // warning 6239
   {
      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( ( INPUT_TYPE & n ) )
   {
      puts("bitmask true");
   }
   else
   {
      puts("bitmask false");
   }
}

Ayrıca bkz.

Başvuru

& İşleç (C# Reference)