C ++ __FILE__ ماكرو

C File Makrw



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

المثال 01:

لنأخذ المثال الأول من الماكرو __FILE__ في C ++ عن طريق بدء تطبيق وحدة التحكم الطرفية. ربما تستخدم الاختصار 'Ctrl + Alt + T' للقيام بذلك. هناك طريقة أخرى لفتح الغلاف وهي استخدام منطقة نشاط القائمة إذا نسيت مفتاح الاختصار. بعد تشغيل وحدة التحكم الطرفية على شاشتك ، حاول إنشاء ملف c ++ جديد لعمل التعليمات البرمجية فيه. يمكن إنشاء ملف باستعلام 'اللمس' البسيط ، كما هو موضح في الصورة المرفقة أدناه. يجب إعطاء اسم الملف الذي تم إنشاؤه حديثًا باستخدام الكلمة الأساسية 'touch'.







يجب أن يكون هناك بعض المحرر مثبتًا على نظام Ubuntu 20.04 Linux للاستفادة منه في الترميز وفتح الملفات التي تم إنشاؤها حديثًا. أشهر المحررين الموصى بهم على نطاق واسع بين مستخدمي Linux هم محرر GNU Nano و Vim. بخلاف ذلك ، يمكن أيضًا استخدام محرر النصوص في حالة عدم عمل المحررين المذكورين سابقًا. لذلك ، قمنا بالفعل بتثبيت محرر GNU Nano. وبالتالي ، سنستخدمه لفتح الملف وتحريره لعمل كود. استخدم الكلمة الأساسية 'nano' مع اسم الملف لجعل المحرر يعمل.





الآن ، أصبح ملف macro.cc الذي تم إنشاؤه حديثًا C ++ جاهزًا للترميز في المحرر. لنبدأ في تنفيذ كود C ++ أثناء تنفيذنا لهذه المقالة لمعرفة عمل الماكرو __FILE__. لقد بدأنا كود C ++ الخاص بنا عن طريق إضافة رأس الإدخال والإخراج القياسي في الجزء العلوي منه. تم استخدام الكلمة الأساسية 'include' مع علامة التجزئة للقيام بذلك. بدون هذا العنوان ، لن يعمل إدخال وإخراج كود C ++ في وحدة التحكم عند التجميع والتنفيذ.





الطريقة الرئيسية () هي الركيزة الأساسية لكودنا حيث يبدأ التنفيذ منه وينتهي به. ضمن الطريقة الرئيسية () ، سيتم إنجاز العمل الفعلي. لقد استخدمنا رمز سطر واحد في طريقة main () لوصف وظائف الماكرو __FILE__. لذلك ، تم استخدام عبارة printf هنا ، مع أخذ القيمتين كوسيطتين ، أي سلسلة تأخذ اسم الملف ووظيفة الماكرو.

يتم استخدام الماكرو __FILE__ هنا للحصول على مسار الملف الحالي أو اسمه. بينما يتم استخدام '٪ S' لطباعة المسار الحالي لملف أو اسمه داخل سلسلة. يجب عليك حفظ التعليمات البرمجية الخاصة بك قبل التنفيذ بمساعدة اختصار 'Ctrl + S'. الآن تم حفظ الكود ، حاول العودة إلى shell terminal باستخدام الاختصار 'Ctrl + X'.



كما انتهينا من كود C ++ للماكرو __FILE__ ، فلنبدأ في تجميع كود C ++. بالنسبة لعملية التجميع ، قمنا بالفعل بتثبيت برنامج التحويل البرمجي g ++ لترجمة كود C ++. لذلك ، تم استخدام برنامج التحويل البرمجي g ++ في الجهاز الطرفي لتجميع الملف 'macro.cc'. عند التحويل البرمجي ، لا يُرجع أي شيء ، مما يشير إلى أن رمز C ++ موجود داخل ملف macro.cc صحيح من الناحية الدلالية. بعد التجميع ، تأتي الأدوار لتنفيذ الكود. لتشغيل ملف الشفرة ، نميل إلى استخدام الاستعلام البسيط './.aout'. عند تشغيل الملف macro.cc ، حصلنا على اسم الملف في المقابل. هذه هي الطريقة التي يعمل بها الماكرو C ++ __FILE__.

المثال 02:

دعونا نحصل على مثال آخر للتعمق في النظر إلى وظائف الماكرو C ++ __FILE__ داخل نظام Ubuntu 20.04. كما رأينا كيف يعمل الماكرو C ++ __FILE__ عند استخدامه لجلب مسار الملف لملف تم ذكره فيه.

الآن ، سنستخدم الماكرو C ++ __FILE__ للحصول على مسار الملف أو اسم ملف آخر غير الملف الذي نعمل عليه حاليًا. لذلك ، فتحنا نفس الملف macro.cc في محرر GNU Nano لتحديث الكود. لقد أضفنا رأس الإدخال والإخراج القياسي مع تضمين الكلمة الأساسية وقمنا بتهيئة وظيفة main () بنوع إرجاع عدد صحيح.

ضمن طريقة main () ، يكون بيان الطباعة الأول هو نفس العبارة القديمة للحصول على مسار الملف الحالي الذي نعمل عليه حاليًا. بعد ذلك ، استخدمنا الكلمة الأساسية # line مع اسم ملف آخر ، أي 'new.txt' في السطر التالي على التوالي. هذا لتحديد الملف غير الملف الحالي الذي سنحصل على اسمه أو مساره. تم استخدام عبارة printf التالية لطباعة مسار ملف 'new.txt' بمساعدة ماكرو C ++ __FILE__. احفظ الكود الذي تم تحديثه حديثًا لتجنب أي إزعاج في وقت التجميع. استخدم 'Ctrl + S' للقيام بذلك.

بعد حفظ الملف المحدث ، قم بإنهاءه عبر 'Ctrl + X' من لوحة المفاتيح. الآن ، عدنا إلى شاشة القشرة.

فلنجمع الملف المحدث. استخدم برنامج التحويل البرمجي g ++ للقيام بذلك باسم ملف macro.cc. بعد التحويل البرمجي الناجح ، قم بتشغيل الكود باستخدام الأمر “./a.out” في وحدة التحكم. يُظهر الإخراج المسار إلى الملف الحالي أولاً ، ثم المسار إلى الملف الآخر ، تم عرض 'new.txt' على شاشة shell. انظر إلى مدى سهولة استخدام الماكرو __FILE__ لعرض مسار الملف على الغلاف.

المثال 03:

دعونا نلقي نظرة على الماكرو __LINE__ جنبًا إلى جنب مع الماكرو __FILE__ في C ++. سيعرض الماكرو __LINE__ رقم سطر الملف الذي تم استخدام الماكرو فيه. لذلك ، افتح نفس الملف وقم بتحديث كل من عبارات printf. قبل الماكرو C ++ __LINE__ ، أضفنا الماكرو C ++ __LINE__. يحصل هذا الماكرو __LINE__ على رقم سطر الملف الحالي حيث يأتي __FILE__ أولاً. بينما سيحصل الماكرو __LINE__ التالي على رقم السطر الأول من الملف الآخر لأننا ذكرنا بالفعل رقم السطر مع اسم الملف في الكود.

بعد حفظ الملف والخروج منه ، عدنا إلى محطة shell. نحن نستخدم نفس الأمر g ++ لترجمة كود ملف C ++ macro.cc. يؤدي التجميع الناجح إلى أمر التنفيذ. الآن يتم استخدام الأمر './a.out' هنا للقيام بذلك. يخبرنا التنفيذ أن الملف الأول ، أي الملف الحالي في السطر 3 ، بينما الماكرو __FILE__ موجود في السطر الأول من الملف الآخر المذكور في الكود.

استنتاج:

تحتوي هذه المقالة على تعريف وحدات الماكرو وتناقش استخدام الماكرو C ++ __FILE__ في نظام Ubuntu 20.04. تمت أيضًا مناقشة الماكرو C ++ __LINE__ ضمن بعض الأمثلة لتوضيح عمل الماكرو C ++ __FILE__ أكثر. باختصار ، لدينا أمل كبير في أن تساعدك هذه المقالة في C ++ __FILE__macro في أفضل حالاتها.