توجيهات المترجم (المعالجات التمهيدية)
من cppreference.com
< cpp
المعالجات التمهيدية هي عمليات وأوامر تتم قبل عملية الترجمة , وينتج عنها ملف يتم تمريره الى المترجم , والفائدة منها أنك أحيانا تريد أن تنفذ كود معين في عملية تنقيح البرنامج فقط ولاتريد أن ينفذ في البرنامج عند نشره وتحزيمه , أيضا يمكنك فعل ذلك إذا أردت تنفيذ ذلك الكود في منصة دون منصة أخرى مثلا تريد أن يعمل تحت منصة windows دون منصة Linux لأسباب تكون خاصة بالمنصة التي تستخدمها .
التوجيهات :
هي عمليات تتحكم بالمعالجات التمهيدية (التي تقوم بالقراءة الأولية للكود الخاص فيك) وكل توجيهة تكتب في سطر وحيد ولايكتب بعدها الفاصلة المنقوطة (;) .
القاعدة :
#التوجيهة .
قم بتشغيل هذا الكود:
// #direct
//------------
// #التوجيه
ملاحظات :
- التوجيهات هي واحدة من هؤلاء :
define,undef,include,if,ifdef,ifndef,else,elif,endif,line,error,warning,pragma - المعاملات : على حسب التوجيهة فالتوجيه include# لها المعاملات <> والتوجيه if# لها معاملات الشرطية مثل == != > < >= <= .
قم بتشغيل هذا الكود:
#include <iostream>
#define MAX 100
#if MAX == 100
std::cout << MAX;
#endif
الاستخدامات :
- التوجيهات الشرطية : ترجمة جزءمن الملف مصدري باستخدام(
if,#ifdef,#ifndef,#else,#elif,#endif). - توجيهات الاستبدال: تغيير نص بقيمة باستخدام (
undef,#,##,#define#)
- توجيهات التضمين تضمين ملف header في ملف المصدر باستخدام التوجيهة
include#. - warning توليد رسالة تحذير باستخدام التوجيهة التالية
warning#. - توجيهات الأخطاء توليد رسالة خطأ باستخدام التوجيهة التالية
error#.