تحذير برنامج التحويل البرمجي (المستوى 4) C4706

رسالة خطأ

التعيين ضمن تعبير شرطي

اختبار القيمة في تعبير شرطي تم نتيجة للتعيين.

تعيين القيمة (قيم تشغيل الجانب الأيسر للتعيين) التي يمكن استخدامها بشكل قانوني في تعبير آخر، بما في ذلك تعبير اختبار.

إنشاء نموذج التالي C4706:

// C4706a.cpp
// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ( a  = b ) // C4706
   {
   }
}

يحدث التحذير حتى في حالة النقر نقراً مزدوجاً الأقواس الموجودة حول اختبار الشرط:

// C4706b.cpp
// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ( ( a  =  b ) ) // C4706
   {
   }
}

إذا كنت هو لاختبار علاقة وعدم عمل تعيين، استخدم ==عامل التشغيل. على سبيل المثال، ما يلي السطر الاختبارات ما إذا كان و b تساوي:

// C4706c.cpp
// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ( a == b )
   {
   }
}

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

// C4706d.cpp
// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ( ( a = b ) != 0 )
   {
   }
}