C6316

تحذير C6316: عامل تشغيل غير صحيح: اختبار التعبير هو ثابتة وغير صفري. تمثل استخدم-و إلى تحديد ما إذا تم تعيين بت

يشير هذا التحذير استخدم من تمثل-أو (|) عندما تمثل-و ( &) يجب أن تستخدم. تمثل-أو إضافة بت إلى التعبير الناتج، بينما تمثل-و تحديد تلك البتات مشتركة بين العوامل جهازي الخاص به فقط. قم باختبار للإشارات يجب أن يتم إجراؤها مع bitwise-و أو اختبار مساواة.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير:

#define INPUT_VALUE 2
void f( int Flags)
{
  if (Flags | INPUT_VALUE) // warning
  {
    // code
  }
}

إلى تصحيح هذا التحذير، استخدم تعليمات برمجية التالية:

#define ALLOWED 1
#define INPUT_VALUE 2

void f( int Flags)
{
  if ((Flags & INPUT_VALUE) == ALLOWED)
  {
    // code
  }
}