سؤال

أنا أكتب C89 على MSFT Visual Studio 2010 Beta. كيف يمكنني التأكيد ، على غرار جافا assert الكلمة الرئيسية؟ أعتقد أنني بحاجة إلى تحديد ماكرو ، لكنني لست متأكدًا من كيفية. (يبدو أن هذا شيء تم القيام به من قبل ، لذلك أفضل استخدام ذلك بدلاً من محاولة لفني.)

هذا تخمين:

int assert(int truth_value) {
   // crash the program with an appropriate error message   
}
هل كانت مفيدة؟

المحلول

C89 لديه <assert.h>, الذي يحتوي على الماكرو الذي تبحث عنه.

#include <assert.h>
assert(expression);

من الوثائق:

ال يجزم() اختبارات الماكرو المعطاة التعبير وإذا كانت خاطئة ، يتم إنهاء عملية الاتصال. تتم كتابة رسالة تشخيصية إلى Stderrوتسمى وظيفة الإجهاض (3) ، بإنهاء البرنامج بشكل فعال.

لو التعبير صحيح ، يجزم() ماكرو لا يفعل شيئًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top