assert(3)

الاسم
assert - أنهِ البرنامج إذا كان التأكيد خاطئًا

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <assert.h>

void assert(bool expression);

الوصف
تساعد هذه الكلية المبرمجين في إيجاد الأخطاء في برامجهم، أو معالجة الحالات الاستثنائية عبر تعطل يُنتج مخرجات تصحيح محدودة.

إذا كان expression خاطئًا (أي يُقارن بالصفر)، تطبع assert() رسالة خطأ إلى الخطأ المعياري وتنهي البرنامج باستدعاء abort(3). تتضمن رسالة الخطأ اسم الملف والدالة المحتوية على استدعاء assert()، ورقم سطر الكود المصدري للاستدعاء، ونص الوسيط؛ شيء مثل:

    prog: some_file.c:16: some_func: Assertion `val == 0' failed.

إذا عُرّفت الكلية NDEBUG في اللحظة التي أُدرج فيها <assert.h> آخر مرة، لا تُولد الكلية assert() أي كود، وبالتالي لا تفعل شيئًا على الإطلاق. لا يُوصى بتعريف NDEBUG إذا استُخدمت assert() لكشف حالات الخطأ لأن البرنامج قد يتصرف بشكل غير حتمي.

قيمة الإرجاع
لا تُعاد أي قيمة.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
assert() | سلامة الخيوط | MT-Safe

المعايير
C11, POSIX.1-2008.

التاريخ
C89, C99, POSIX.1-2001.

في C89، يُطلب أن يكون expression من نوع int وتنتج سلوك غير محدد إذا لم يكن كذلك، لكن في C99 قد يكون من أي نوع عددي.

العلل
نُفذت assert() ككلية؛ إذا كان للتعبير المُختبر تأثيرات جانبية، سيكون سلوك البرنامج مختلفًا اعتمادًا على ما إذا عُرّفت NDEBUG. قد يُنشئ هذا أخطاء هايزنبرغ التي تختفي عند تشغيل التصحيح.

انظر أيضًا
abort(3), assert_perror(3), exit(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.