مزیت های توابع inline - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مزیت های توابع inline

0 امتیاز
سلام بچه ها.

من متوجه نمی شم چه توابعی را باید inline کنم کدام تابع inline نشه همه را inline می کنم اینکار درسته؟ آیا واقعاً مزیت داره؟ چرا کامپایلر خودش همه توابع را inline نیم کنه خیال همه را جمع کنه؟
سوال شده آذر 12, 1392  بوسیله ی crypto_code (امتیاز 51)   4 7 11

2 پاسخ

+1 امتیاز
 
بهترین پاسخ
موقعی که یک تابع را به صورت inline تعریف می کنید، کامپایلر در مکانهایی که این تابع فراخوانی شده کد بدنه تابع را قرار می دهد. این موضوع سرعت اجرا شدن بدنه تابع را بیشتر می کند و برای جاهایی مناسب است که به تعداد خیلی زیادی قرار است که تابع مورد فراخوانی قرار بگیرد (مثلاً در داخل یک حلقه). بهتر است که زمانی یک تابع را به صورت inline تعریف کنید که کد مربوط به تابع خیلی زیاد نباشد و به سرعت بالا هم نیاز داشته باشید. به عنوان مثال توابع کوچکی مثل قدر مطلق که کد کمی دارند و در محاسبات سنگین هم زیاد استفاده می شوند بهتر است که به صورت Inline باشد.
پاسخ داده شده آذر 12, 1392 بوسیله ی r0lex (امتیاز 391)   1 1 9
انتخاب شد آذر 17, 1392 بوسیله ی BlueBlade
+2 امتیاز
برای inline شدن بایستی تابع مورد نظر را در header بنویسید.

یک سری از مزایای تابع inline را دوستان عرض کردند چون تو تابع inline در واقع call تابع را حذف می کنیم پس قاعدتاً دیگه push کردن وضعیت فعلی رجیستر های در هنگام فراخوانی و pop کردن رجیسترها به حالت اول زمان برگشت از تابع را نداریم البته با اینکار حجم کد تون هم بالا میره کامپایلر در مواردی خودش تشخیص میده که تابع شما بایست inline باشه و inline می کنه تابع مورد نظر را و در برخی موارد هم تابع که شما با کلمه کلیدی inline مشخص کردید به صورت inline از آن استفاده نمی کنه.
پاسخ داده شده آذر 12, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
...