C6286

تحذير C6286: (< ثابت غير صفري > | | <تعبير>) هو دوماً ثابت غير صفري. <تعبير> هو عدم تقييم وقد يكون تأثيرات جانبية

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

هذا التحذير يشير إلى أنه قد تحتاج إلى قم بفحص جانب أيمن للتعبير بعناية إلى التأكد من غير فقدان أي تأثيرات جانبية المطلوبة للوظيفة المناسبة.

(!0 || <expression>) البناء هو المستخدمة بشكل عام لفرض تنفيذ حظر التحكم.

مثال

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

#include <stdlib.h>
#include <stdio.h>
#define INPUT_TYPE 1 

int test();

void f()
{
  if (INPUT_TYPE || test()) 
  {
    puts("INPUT_TYPE == 1, expression not evaluated");
    // code...
  }
  else
  {
    puts("INPUT_TYPE == 0. Call to test() returned 0");
    // code...
  }
}

توضح التعليمة البرمجية التالية حل واحد ممكن بواسطة الكسر ifالعبارة في جزئين منفصلة:

#include <stdlib.h>
#include <stdio.h>
#define INPUT_TYPE 1 

int test();

void f()
{
  int i;
  if (INPUT_TYPE) 
  {
    i = test();
    // code...
  }
  else
  {
    puts("INPUT_TYPE false");
    // code...
  }
}

راجع أيضًا:

المرجع

Logical OR Operator: ||