c++ - ماذا يعني "تعليق#pragma"؟




visual-c++ macros (4)

ماذا يعني #pragma comment في ما يلي؟

#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")

Answers

هذه الروابط في المكتبات المحددة في MSVC ++.


#pragma comment عبارة عن توجيه مترجم يشير إلى Visual C ++ لترك تعليق في ملف الكائن الذي تم إنشاؤه. يمكن عندئذ قراءة التعليق من خلال رابط عندما يقوم بمعالجة ملفات الكائن.

#pragma comment(lib, libname) تخبر الرابطة بإضافة مكتبة 'libname' إلى قائمة تبعيات المكتبة ، كما لو كنت قد أضفتها في خصائص المشروع في Linker->Input->Additional dependencies

راجع تعليق # pragma على MSDN


لطالما أطلقت عليهم "توجيهات المجمع". فهم يوجهون المترجم للقيام بالأشياء ، والتفرع ، بما في ذلك اللبس كما هو موضح أعلاه ، وتعطيل أخطاء معينة وما إلى ذلك ، خلال مرحلة التجميع.

عادةً ما تقوم شركات Compiler بإنشاء الإضافات الخاصة بها لتسهيل ميزاتها. على سبيل المثال ، (على ما أعتقد) بدأت شركة مايكروسوفت صفقة "#pragma مرة واحدة" وكانت فقط في منتجات MS ، والآن لست متأكدًا.

تعليمات Pragma تتضمن "# pragma comment" في الجدول الذي ستشاهده.

HTH

أشك في دول مجلس التعاون الخليجي ، على سبيل المثال ، لديها مجموعة خاصة بها من # pragma.


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

يتحدث هيرب سوتر لمدة ثلاث ساعات عن نموذج الذاكرة C ++ 11 بعنوان "ذرية <> الأسلحة" ، وهو متاح على موقع Channel9 - الجزء الأول والجزء الثاني . الحديث فني للغاية ، ويغطي المواضيع التالية:

  1. تحسينات ، سباقات ، ونموذج الذاكرة
  2. الترتيب - ماذا: الاستحواذ والإفراج
  3. الترتيب - كيف: Mutexes ، Atomics ، و / أو الأسوار
  4. قيود أخرى على المجمعين والأجهزة
  5. رمز Gen & Performance: x86 / x64 ، IA64 ، POWER ، ARM
  6. استرخاء Atomics

لا يتحدث الحديث عن واجهة برمجة التطبيقات ، بل عن المنطق والخلفيات وتحت غطاء المحرك وخلف الكواليس (هل تعلم أن الدلالات المريحة أضيفت إلى المعيار فقط لأن POWER و ARM لا يدعمان الحمل المتزامن بكفاءة؟).





c++ visual-c++ macros