اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

هذا الكود عبارة عن موجهة معالجة مسبق  preprocessor directive ويستخدم كحارس لملفات الترويسة header guard، فبدلًا من تعريف قيمة معينة (في الغالب تكون اسم الملف بأحرف كبيرة) لكي لا يتم إستدعاء ملفات الترويسة أكثر من مرة لكي لا يحدث خطأ (function already has a body)، فيمكن أن تستخدم هذا الموجهة بشكل تلقائي في كل ملفات الترويسة لديك لكي لا يحدث هذا الخطأ. يوفر هذا الموجهة الكود والوقت لأنك لن تضطر إلى تعريف موجهة خاص لكل ملف ترويسة لديك.

#pragma once

struct foo 
{
    int member;
};

يوجد بعض المصرفات compilers التي تقوم بتحسين أداء البرنامج عند إستعمال هذا الموجهة بدلًا من الطريقة التقليدية، حيث لن يقوم الـ preprocessor بإعادة قراءة الملفات التي تحتوي على هذا الموجهة في بدايتها مما يحسن من عملية التصريف وأداء البرنامج بشكل طفيف

ملاحظة: هذا الموجهة ليس جزء من تعليمات ++C الرسمية ولكن يتم إستعماله بشكل كبير في أغلب المصرفات compilers، لذلك عليك التأكد أولًا من أن المصرَّف الذي لديك يدعم هذا الموجهة.

هنا صورة توضح المصرفات التي تدعم هذا الموجهة والتي لا تدعمه:

61a92bf7168cf_Screenshot2021-12-02222530.png.2f133c684f895032217f974d8c31aca9.png

أنظر إلى خطأ function already has a body من هنا:

يمكنك أن تقرأ المزيد عن هذا الموجهة من خلال هذه المقالة هنا:

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...