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

راجع أيضًا:

المرجع

Bitwise AND Operator: &

Logical OR Operator: ||