نطاقات
المتغيرات
أفعال

البريبروسيسور

من cppreference.com
< c

البريبروسيسور يتم تنفيذه أثناء المرحلة الرابعة من الترجمة, أي قبل اجراء الترجمة (Compilation) ذاتها. ناتج الـمعالجة القبلية (Preprocessing) هو ملف وحيد يتم إمراره للكومبيلر الفعلي.

التوجيهات

توجيهات البريبروسيسور (Preprocessing directives) تتحكم في سلوك البريبروسيسور. كل توجيهة تشمل سطر واحد وشكلها كالآتي:

  • رمز ‎#‎
  • أمر للبريبروسيسور (إما ‎define‎ أو ‎undef‎ أو ‎include‎ أو ‎if‎ أو ‎ifdef‎ أو ‎ifndef‎ أو ‎else‎ أو ‎elif‎ أو ‎endif‎ أو ‎line‎ أو ‎error‎ أو ‎pragma‎) [١]
  • المعطيات (تختلف باختلاف الأمر)
  • علامة السطر الجديد

الأمر الخالي (Null directive) عبارة عن علامة ‎#‎ متبوعة بسطر جديد وليس له أي تأثير

الامكانيات

البريبروسيسور لديه الإمكانيات التالية في تعديل الملفات: مشروطة

  • ترجمة مشروطة لجزء من الكود دون آخر (أوامر التحكم هي ‎#if‎ و ‎#ifdef‎ و ‎#ifndef‎ و ‎#else‎ و ‎#elif‎ و ‎#endif‎).
  • استبدال ماكرو بكلام محدد مسبقا وكذلك دمج وتنصيص المسميات. (أوامر التحكم هي ‎#define‎ و ‎#undef‎, و المؤثرات ‎#‎ و ‎##‎)
  • تضمين ملفات أخرى (أمر التحكم هو ‎#include‎)
  • تُسبب حدوث خطأ error (أمر التحكم هو ‎#error‎)

يمكن التحكم في هذه الحيثيات من البريبروسيسور:

الهامش

  1. هذه هي الأوامر المعرفة من قبل المعيار. لم يحدد المعيار سلوك أي أوامر أخرى: ربما يتم تجاهلها أو يتم إسناد معنى مفيد لها أو يتم اعتبارها موضع خطأ أثناء الترجمة. حتى لو تم تجاهلها يتم إزالتها بعد انهاء البريبروسيسور لعمله. من التوجيهات غير المعيارية الشائعة, توجيهة ‎‎#warning‎ التي تطبع رسالة من قبل المستخدم أثناء الترجمة.

أنظر أيضا

مقالة مرجع C++‎ عن Preprocessor