inline SIFATLI FUNKSIYALAR Funksiyalar dastur yozishda katta qulayliklar beradilar. Lekin mashina
saviyasida funksiyani har gal chaqirtirish qo'shimcha ish bajarilishiga olib
keladi. Registrlardagi o'zgaruvchilar o'zgartiriladi, lokal yozgaruvchilar
quriladi, parametr sifatida berilgan argumentlar funksiya stekiga o'ziladi.
Bu, albatta, qo'shimcha vaqt oladi. Umuman aytganda, hech funksiyasiz yozilgan
dastur, yani hamma amallari faqat main() funksiyasi ichida bajariladigan
monolit programma, bir necha funksiyalarga ega, ayni ishni bajaradigan
dasturdan tezroq ishlaydi. Funksiyalarning bu noqulayligini tuzatish uchun
inline (satr ichida) ifodasi funksiya e'loni bilan birga qo'llaniladi.
inline sifatli funksiyalar tanasi dasturdagi ushbu funksiya chaqirig'i
uchragan joyga qo'yiladi. inline deb ayniqsa kichik funksiyalarni belgilash
effektivdir. inline ning o'ziga yarasha kamchiligi ham bor, inline
qo'llanilganda dastur hajmi oshdi. Agar funksiya katta bo'lsa va dastur ichida
ko'p marotaba chaqirilsa, programma hajmi juda kattalashib ketishi mumkin.
Oddiy, inline sifati qo'llanilmagan funksiyalar chaqirilish mehanizmi
quyidagicha bo'ladi. Dastur kodining ma'lum bir yerida funksiya tanasi bir
marotaba aniqlangan bo'ladi. Funksiya chaqirig'i uchragan yerda funksiya
joylashgan yerga ko'rsatkich qo'yiladi. Demak, funksiya chaqirig'ida dastur
funksiyaga sakrashni bajaradi. Funksiya o'z ishini bajarib bo'lgandan keyin
dastur ishlashi yana sakrash joyiga qaytadi. Bu dastur hajmini ihchamlikda
saqlaydi, lekin funksiya chaqiriqlari vaqt oladi.
Kompilyator inline ifodasini inobatga olmasligi mumkin, yani funksiya oddiy
holda kompilyatsiya qilinishi mumkin. Va ko'pincha shunday bo'ladi ham.
Amalda faqat juda kichik funksiyalar inline deya kompilyatsiya qilinadi.
inline sifatli funksiyalarga o'zgartirishlar kiritilganda ularni ishlatgan
boshqa dastur bloklari ham qaytadan kompilyatsiya qilinishi kerak. Agar katta
proyektlar ustida ish bajarilayatgan bo'lsa, bu ko'p vaqt olishi mumkin.
inline funksiyalar C da qo'llanilgan # define makrolari o'rnida qo'llanilish
uchun mo'ljallangan. Makrolar emas, balki inline funksiyalar qo'llanilishi
dastur yozilishini tartibga soladi. Makro funksiyalarni keyinroq o'tamiz.
//inline ifodasining qo'llanilishi