توابع inline (Inline Functions)
توابع inline یعنی «توابع درجا». کامپایلر کد تابع را همان جا می چسباند. «کامپایلر (Compiler)» برنامه ای است که کد را به برنامه قابل اجرا تبدیل می کند. این کار، پرش تابع را حذف می کند. بنابراین، گاهی کمی سریع تر است.
مقایسه سریع: معمولی در برابر توابع inline
هر دو تابع یک کار را انجام می دهند. تفاوت در نحوه اجراست.
int square(int x) {
return x * x;
}
inline int square(int x) {
return x * x;
}
نکته: کلمه inline فقط پیشنهاد است. تصمیم نهایی با کامپایلر است.
نمونه عملی با توابع inline
در این مثال، یک تابع جمعِ ساده را inline می کنیم.
#include <stdio.h>
inline int add(int a, int b) {
return a + b;
}
int main() {
printf("%d\n", add(5, 3));
return 0;
}
توضیح کوتاه: کامپایلر ممکن است add(5, 3) را به 5 + 3 تبدیل کند. این کار پرش تابع را حذف می کند.
چه زمانی از توابع inline استفاده نکنیم
- تابع بزرگ است؛ حجم برنامه زیاد می شود.
- تابع بازگشتی است؛ مدیریت سخت تر می شود.
- تابع کم استفاده است؛ سودی بهینه ندارد.
هشدار: زیاده روی باعث «تورم کد» می شود و سرعت را کاهش می دهد.
گام های عملی
- تابع کوچک و پرتکرار را انتخاب کن.
inlineرا به ابتدای تعریف اضافه کن.- کد را اجرا و زمان را مقایسه کن.
برای ادامه مفاهیم، صفحه بازگشت (Recursion) را بخوان. همچنین مرور توابع ریاضی مفید است. اگر به توضیح کامل نیاز داری، همین توابع inline را نشانه گذاری کن.
جمع بندی سریع
- توابع inline پرش تابع را حذف می کنند.
- برای توابع کوچک، سودمندتر هستند.
- تصمیم نهایی با کامپایلر است.
- زیاده روی باعث تورم کد می شود.