Aracılığıyla paylaş


C6285

Uyarı C6285: (< sıfır olmayan sabit > || < sıfır olmayan sabit>) her zaman bir sıfır olmayan sabittir.Bit tabanlı ve işleç kullanmayı mı amaçlamıştınız?

Bu uyarı, iki sabit değerleri, her ikisi birden, büyük bağımsız değişken olarak bir mantıksal algılanan gösterir- veya test bağlamında oluşan bir işlem.Bu ifade her zaman doğrudur.

Birden daha büyük sabit değerler Öner mantıksal bağımsız- veya bit alanları olabilir.Bitsel operatör daha uygun bir işleç bu durumda olabilir olup olmadığını göz önünde bulundurun.

Örnek

Aşağıdaki kod bu uyarıyı oluşturur:

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f()
{
  if (TESTED_VALUE || MASK) 
  {
    puts("(TESTED_VALUE || MASK) True");
    // code ...
  }
  else 
  {
    puts("(TESTED_VALUE || MASK) False");
    // code ...
  }
}

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

#include <stdio.h>
#define     TESTED_VALUE    0x37
#define     MASK            0xaa

void f(int flag)
{
  if ((TESTED_VALUE & MASK)== flag)
  {
    puts("true");
    // code ...
  }
  else
  {
    puts("false");
    // code ...
  }
}

Ayrıca bkz.

Başvuru

İkili işleçlerin ifadelerle