c++ شرح inline vs__inline vs__inline__ vs__forceinline؟




inline function matlab (3)

__inline و __inline__ و __forceinline كلها محددة للتنفيذ. ونظرًا لشرط التسطير المزدوج ، فإن جميع المعرفات محجوزة للتنفيذ ، لذا لا يجب أن تتعارض مع المعرّفات المستخدمة في التطبيقات.

inline هي الكلمة الأساسية C ++ فقط.

ما هي الاختلافات بين هذه الكلمات الأربع (المضمنة) الأربعة؟

inline ، __inline ، __inline__ ، __forceinline .


بالنسبة إلى برنامج التحويل البرمجي Visual Studio ، فهذا يعني:

  • مضمنة - اقتراح إلى المحول البرمجي لتضمين التعليمات البرمجية

  • __فورمادينليني - يتجاوز تحسين برنامج التحويل البرمجي مدمج ويولد رمز مضمنة

لمزيد من التفاصيل ، راجع: http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx


inline هي الكلمة الأساسية ، في C ++ و C99.

__inline هي كلمة رئيسية خاصة بمورد (مثل MSVC ) للدالة المضمنة في C ، حيث أن C89 لا يمتلكها.

__inline__ مشابه لـ __inline ولكنه من مجموعة أخرى من compilers.

__forceinline هي كلمة رئيسية خاصة بمورد معين (بشكل أساسي MSVC) ، والتي ستطبق المزيد من القوة __inline الوظيفة أكثر من تلميح __inline (على سبيل المثال ، مضمنة حتى إذا كانت تؤدي إلى رمز أسوأ).

هناك أيضا __attribute__((always_inline)) في دول مجلس التعاون الخليجي و clang.





keyword