تضمين الوظائف العودية
من المفاهيم الخاطئة الشائعة أنه لا يمكن تضمين الوظائف العودية. ومع ذلك، يمكن للمترجمين بالفعل تضمين وظائف متكررة، وإن كان ذلك مع اعتبارات معينة. مترجم. للمترجم القرار النهائي فيما إذا كان سيتم تضمين الوظيفة أم لا، بغض النظر عن المؤهل المضمن.
قرار تضمين المترجم
يقرر المترجم ما إذا كان سيتم تضمين وظيفة بناءً على على عوامل مثل:
مستوى التحسين: تميل مستويات التحسين الأعلى إلى التفضيل التضمين.حجم الوظيفة وتعقيدها: من المرجح أن يتم تضمين الوظائف الأصغر والأقل تعقيدًا.
توفر تقنيات التحسين: قد يستخدم المترجم حلقة البسط أو تحسين الاستدعاء الخلفي لجعل التضمين ممكنًا .
inline intfactorial(int n) { إذا (ن من المحتمل أن يقوم المترجم المحسن بتضمين هذه الوظيفة إلى مستوى معين، كما هو موضح في الكود المحسن التالي:
int Factorial(int n) { إذا (نinline int factorial(int n) {
if (n
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3