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