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