ما هي مكتبات لغة ++C وكيف أفرّق بينها؟

1 إجابات
profile/بشرى-ابوسويلم
بشرى ابوسويلم
بكالوريوس في نظم المعلومات (٢٠١٢-٢٠١٦)
.
٠٢ مارس ٢٠٢١
قبل ٤ سنوات
المكتبة في لغة ++C: هي المكان الذي يتم فيه تنفيذ الوظيفة الفعلية، أي أنها تحتوي على الجسم الوظيفي. للمكتبات فئتان رئيسيتان:

ثابتة Static: تحتوي المكتبات الثابتة على كود كائن مرتبط بتطبيق المستخدم النهائي ثم تصبح جزءًا من الملف القابل للتنفيذ. تُستخدم هذه المكتبات على وجه التحديد في وقت الترجمة مما يعني أن المكتبة يجب أن تكون موجودة في الموقع الصحيح عندما يريد المستخدم تجميع برنامج C أو ++C الخاص به، في النوافذ تنتهي بامتداد.lib وبامتداد.a لنظام التشغيل MacOS.

مشترك أو ديناميكي Shared or Dynamic: هذه المكتبات مطلوبة فقط في وقت التشغيل، أي يمكن للمستخدم تجميع التعليمات البرمجية الخاصة به دون استخدام هذه المكتبات. باختصار، ترتبط هذه المكتبات في وقت الترجمة لحل المراجع غير المحددة ثم يتم توزيعها على التطبيق بحيث يمكن للتطبيق تحميلها في وقت التشغيل.
على سبيل المثال، عندما نفتح مجلدات لعبة معينة، يمكننا العثور على العديد من ملفات .dll (مكتبات الارتباط الديناميكي). نظرًا لأنه يمكن مشاركة هذه المكتبات بواسطة برامج متعددة، فإنها تُسمى أيضًا مكتبات مشتركة، وتنتهي هذه الملفات بامتدادات dll أو .lib. أما في النوافذ تنتهي بامتداد dll.

الآن أهم الخصائص المشتركة بين المكتبات المذكورة أعلاه وهي:

  1. لديهم الامتداد .lib
  2. أنها تحتوي على تعريفات الوظيفة
  3. متوفرة داخل "الدليل الفرعي lib" والذي هو نفسه في مترجم Turbo.
  4. ملفات المكتبة ليست قابلة للقراءة من قبل الإنسان، لأنها في شكل كود الآلة.
  5. يتم تضمين ملفات المكتبة في البرنامج في المرحلة الأخيرة بواسطة برنامج خاص يسمى الرابط linker. 
أما المكتبات القياسية في ++C  يمكن تصنيفها على النحو التالي: 

  • The Language Support Library تحدد مكتبة دعم اللغة الأنواع والوظائف التي سيتم استخدامها ضمنيًا بواسطة برامج ++C التي تستخدم ميزات لغة ++C مثل عوامل التشغيل الجديدة والحذف ومعالجة الاستثناءات ومعلومات نوع وقت التشغيل (RTTI).

  • The Diagnostics Library تُستخدم مكتبة التشخيص للكشف عن حالات الخطأ والإبلاغ عنها في برامج ++C.

  • The General Utilities Library تُستخدم مكتبة الأدوات العامة من قبل المكونات الأخرى لمكتبة ++C القياسية، وخاصة مكتبات الحاويات والمكررات والخوارزميات (مكتبة القوالب القياسية).
 
  • The Standard String Templates مكتبة السلاسل هي وسيلة لمعالجة تسلسلات الأحرف.

  • Localization Classes and Templates تسمح مكتبة التعريب لبرنامج ++C بمعالجة الاختلافات الثقافية لمستخدميه المتعددين.

  • The Containers، Iterators and Algorithms Libraries (the Standard Template Library) مكتبة القوالب القياسية (STL) هي وسيلة لإدارة مجموعات الكائنات ومعالجتها.

  • The Standard Numerics Library مكتبة الأرقام القياسية تعتبر مكتبة الأعداد وسيلة لأداء العمليات العددية.

  •  The Standard Function Library تتكون هذه المكتبة من وظائف متعددة الأغراض ومستقلة والتي ليست جزءًا من أي فئة. مكتبة الوظائف موروثة من C.

  •  The Object Oriented Class Library هذه مجموعة من الفئات والوظائف المرتبطة بها، تتضمن مكتبة ++C القياسية جميع مكتبات C القياسية أيضًا، مع إضافات وتغييرات صغيرة لدعم أمان النوع.

ملاحظة: يمكن للمستخدمين الذين يحتاجون إلى تسهيلات المكتبة للحسابات المعقدة ولكنهم يريدون الحفاظ على التوافق مع برامج التحويل البرمجي القديمة استخدام مكتبة الأرقام المعقدة للتوافق التي تم تحديد أنواعها في ملف header غير القياسي .

يجب العلم بأن هذه المكتبات هي المكتبات الرئيسية أو الأساسية في لغة ++C ولكن هذه اللغة عالم واسع وكبير ويتم تحديثه بشكل مستمر ودائم ولكن مع التعلم والدورات الوجاهية أو على الإنترنت ستزيد من معرفتك بهذه المكتبات وبالتالي في لغة ++C وممارسة هذه اللغة بشكل أكبر.

 المصادر:  التعامل مع المكتبات
Standard C++ Library Header Files
C++ Standard Library