C6313

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

هذا التحذير يشير إلى أن القيمة ثابتة من صفر w كـ توفير كـ وسيطة إلى المختصة بالبت-و ( &) عامل في سياق الاختبار. التعبير الناتج هو الثابتة وتقييم إلى خطأ; النتيجة هو مختلف عن intended.

Th هو هو عادة بسبب استخدام bitwهوe-and لاختبار لإشارة الذي يحتوي على القيمة صفر. إلى اختبار الإشارات valued بصفر، قم بإجراء اختبار لمساواة يجب تنفيذها، على سبيل المثال، استخدام ==أو !=.

مثال

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

#define FLAG 0

void f(int Flags )
{
  if (Flags & FLAG)
  {
    // code
  }
}

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

#define FLAG 0

void f(int Flags )
{
  if (Flags == FLAG)
  {
    // code
  }
}