C6239

تحذير C6239: (< ثابت غير صفري > & & <تعبير>) دوماً يقيم إلى نتيجة <تعبير>. هل كنت إلى استخدام المختصة بالبت-و operaإلىr؟

هذا التحذير يشير إلى أنه غير-تم اكتشاف أية القيمة ثابتة، غير موجود، تشغيل الجانب الأيسر من منطقي-و العملية التي تحدث في سياق اختبار. على سبيل المثال، التعبير ( 2 && n )هو تقليل إلى(!! n), which is the Boolean value of n.

Th هو تحذير عادة ما يشير إلى محاولة فحص من قناع بت الذي bitwهوe-AND ( &) يستخدم عامل التشغيل، و هو لا إنشاء إذا تم تقييم الثابت صفراً 1 نتيجة استخدامها اختيارياً لاختيار رمز مسارات.

مثال

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

#include <stdio.h>
#define INPUT_TYPE 2
void f( int n )
{
   if(INPUT_TYPE && n) // warning 6239
   {
      puts("boolean value of n is true");
   }
   else
   {
      puts("boolean value of n is false");
   }
}

إلى تصحيح هذا التحذير، استخدم bitwise-و ( &) operaإلىr كما هو موضح في التعليمة البرمجية التالية:

#include <stdio.h>
#define INPUT_TYPE 2
void f( int n )
{
   if( ( INPUT_TYPE & n ) )
   {
      puts("bitmask true");
   }
   else
   {
      puts("bitmask false");
   }
}

راجع أيضًا:

المرجع

&عامل التشغيل (C# مرجع)