C6235

تحذير C6235: (< ثابت غير صفري > | | <تعبير>) هو دوماً ثابت غير صفري

هذا التحذير يشير إلى أن القيمة ثابتة غير صفري، غير ذلك من واحد، تم كشفه تشغيل الجانب الأيسر من منطقي-أو العمليات التي تحدث في سياق اختبار. الجانب الأيسر من المنطقي-أو عملية هو لا تقييم لأنه يتم تقييم التعبير الناتج دائماً إلى صواب. Th هو هو الإشارة إلى كما "قصير-circuit تقييم".

القيمة ثابتة غير صفري، غير موجود، يقترح التي المختصة بالبت-و عامل التشغيل ( &) ربما intended. Th هو تحذير هو غير التي تم إنشاؤها ل idiom عام عند الثابت صفراً هو 1، نظراً للاستخدام الخاص به لتمكين مسارات تعليمات برمجية، ولكن بشكل انتقائي هو المنشأة إذا تم تقييم الثابت صفراً إلى 1، على سبيل المثال 1 + 0.

مثال

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

#define INPUT_TYPE 2
void f(int n)
{
   if(INPUT_TYPE || n) //warning 6235 issued
   {
      puts("Always gets here");
   }
   else
   {
      puts("Never gets here");
   }
}

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

#define INPUT_TYPE 2
void f(int n)
{
   if((INPUT_TYPE & n) == 2)
   {
      puts("bitwise-AND comparison true");
   }
   else
   {
      puts("bitwise-AND comparison false");
   }
}

راجع أيضًا:

المرجع

C Logical Operators