C6285
تحذير C6285: (< ثابت غير صفري > | | < ثابت غير صفري >) هو دوماً ثابت غير صفري. هل كنت إلى استخدام المختصة بالبت-و operaإلىr؟
هذا التحذير يشير إلى قيم ثابتة الثاني، كلاهما أكبر من واحد، تم الكشف عن كـ الوسائط إلى منطقي-أو العمليات التي تحدث في سياق اختبار. Th هو التعبير هو دوماً صواب.
اقتراح أكبر من إحدى القيم الثابتة التي الوسائط إلى المنطقية-أو قد تكون حقول بت. خذ بعين الاعتبار ما إذا كان عامل تشغيل أحادي المعامل، &، قد تكون أكثر ملائمة عامل في هذه الحالة.
مثال
يلي تعليمات برمجية ينشئ هذا التحذير:
#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...
}
}
إلى تصحيح هذا التحذير، استخدم المختصة بالبت-و (&) operaإلىr كما هو موضح في التعليمة البرمجية التالية:
#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...
}
}