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");
}
}