وظيفة مضمنة
يجب أن يكون الجميع قد استخدموا استدعاءات الوظائف . لا تنبض الوظيفة إلا عندما يتم استدعاؤها بواسطة وظيفة أخرى، ويتم إعداد مساحة الذاكرة المقابلة لها بعد اكتمال المكالمة، ويتم تنظيفها وتحريرها.
يمكننا أن نرى أن كل استدعاء دالة سيجلب بعض تكاليف الوقت والمكان. تتمثل إحدى وظائف الوظائف المخصصة في تحسين إمكانية إعادة استخدام التعليمات البرمجية، ويمكن استدعاؤها في أي وقت عند الحاجة وتحسين كفاءة التطوير. لذا، بالنسبة للوظيفة التي لا تحتوي على الكثير من التعليمات البرمجية ويتم استدعاؤها بشكل متكرر، يجب أن نفكر جيدًا فيما إذا كان القيام بذلك فعالاً من حيث التكلفة.
لحسن الحظ، ساعدتنا لغة C++ في أخذ هذه المشكلة بعين الاعتبار وزودتنا بآلية مضمنة، أي أننا ما زلنا نستخدم وظائف مخصصة، ولكن أثناء التجميع، يتم إدراج رمز الوظيفة في استدعاء الوظيفة، وبالتالي القضاء على الحاجة إلى استدعاء دالة الإجراءات التسلسلية، مثل التعليمات البرمجية العادية التي يتم تنفيذها بشكل تسلسلي، تحل هذه المشكلة!
ثم الاستخدام بسيط للغاية، ما عليك سوى إضافة الكلمة الرئيسية المضمنة أمام تعريف الوظيفة، مثل الكود التالي:
#include<iostream>usingnamespacestd;inlineintMax(inta,intb){returna>b?a:b;}intmain(){cout<<Max(3,5)<<endl;cout<<Max(7,9)< <endl;return0;}
ومن الجدير بالذكر أن تعريف الوظيفة المضمنة يجب أن يظهر قبل الاستدعاء، حتى يتمكن المترجم من فهم السياق وإجراء استبدال التعليمات البرمجية أثناء التجميع. بالإضافة إلى ذلك، فإن الوظيفة المضمنة مشابهة لمتغير التسجيل ، فهي مجرد طلب نقدمه للمترجم ما إذا كان سيتم تضمينه بالفعل في النهاية أم لا، ويترك للمترجم الاختيار وفقًا للموقف.