Logo ar.removalsclassifieds.com

الفرق بين المضمنة والماكرو (مع الجدول)

جدول المحتويات:

Anonim

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

مضمن مقابل ماكرو

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

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

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

جدول المقارنة بين المضمنة والماكرو

معلمات المقارنة

في النسق

دقيق

تعريف

Inline هي وظيفة عادية مستخدمة في لغة C ++ المحددة بواسطة الكلمة الأساسية "Inline". ماكرو هي وظيفة تستخدم في الغالب في لغة C التي يتم تحديدها بواسطة الكلمة الأساسية "# تعريف".
وصول أعضاء الفصل

يمكن الوصول بسهولة إلى أعضاء الفصل. لا يمكن الوصول إلى أعضاء الفصل.
تصحيحه

يمكن تصحيح البرنامج بسهولة. لا يمكن تصحيح البرنامج بسهولة.
أين تحدد؟

سواء داخل الفصل أو خارجه. في بداية البرنامج.
نهاية

يتم إنهاؤه برمز ، قوس مجعد في النهاية. يتم إنهاؤه بخط جديد بدلاً من رمز.

ما هو مضمّن؟

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

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

ميزة الوظيفة المضمنة هي أن حمل استدعاء الوظيفة لا يحدث. عندما يتم استدعاء الوظيفة ، فإنه يحفظ الحمل الزائد لمتغيرات الدفع / البوب ​​على المكدس ويحفظ أيضًا الحمل الزائد لاستدعاء الإرجاع من الوظيفة.

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

ما هو المايكرو؟

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

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

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

الاختلافات الرئيسية بين المضمنة والماكرو

استنتاج

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

تستخدم وحدات الماكرو على نطاق واسع. يتم استخدامه في السياق ويمكن توسيعه بغض النظر عن حقيقة أنها صحيحة نحويًا. ليس من السهل التصحيح. ويتم تعريفه في بداية البرنامج ويمكن إنهاؤه بسطر جديد.

الفرق بين المضمنة والماكرو (مع الجدول)