Asosiy farq – makro va Inline funksiya
Makro bu kodning bir qismi bo'lib, u oldindan protsessor direktivasi hisoblanadi. Inline funksiyasi dasturning bajarilish vaqtini minimallashtirish uchun C++ takomillashtirish xususiyatidir. Shuning uchun, Makro va Inline Funktsiya o'rtasidagi asosiy farq shundaki, makro preprotsessor tomonidan tekshiriladi, inline funksiya esa kompilyator tomonidan tekshiriladi.
Makro dasturning boshida xesh belgisidan oldin kiritilgan. Dasturda makro nomi mavjud bo'lsa, u makrosning mazmuni bilan almashtiriladi.
Makro nima?
Preprotsessor - bu dastlabki kodni kompilyatordan o'tishdan oldin qayta ishlaydigan dastur. U preprotsessor buyruq qatori yoki direktivalar yordamida ishlaydi. Dasturda preprotsessor direktivalari asosiy dasturdan oldin manba dasturga joylashtiriladi. Dastlabki kod kompilyatordan o'tishidan oldin, u preprotsessor tomonidan preprotsessor ko'rsatmalari uchun tekshiriladi. Preprotsessor direktivalaribelgisiga ega. Boshqa gaplardan farqli o'laroq, ular nuqta-vergul bilan tugamaydi. Preprotsessor direktivasining bir turi makrodir. Odatda, makroslar katta harflar bilan yoziladi.
01-rasm: Makroslar bilan C++ dasturi
Yuqoridagi dasturga muvofiq 3-qator va 4-satr makrolarni bildiradi. Hududni hisoblashda PI qiymati belgilangan makro yordamida almashtiriladi. 14-satrda, volume=CUBE(qiymat), preprotsessor bayonotni hajm=(qiymatqiymatqiymat) sifatida kengaytiradi. Kubni topish funksiya sifatida yozilishi mumkin, lekin bu erda u makros yordamida yoziladi. Agar hajm=CUBE(x+y) kabi bayonot bo'lsa, u hajm=(x+yx+yx+y) gacha kengayadi.
Ba'zi dasturlash tokenlari osongina noto'g'ri yozilishi mumkin. Ularni makroslar yordamida almashtirish mumkin. masalan. define AND &&, define OR ||. Ibratli ta'rif shuningdek define AREA 45.56 kabi ifodalarni ham o'z ichiga olishi mumkin.
Inline funksiya nima?
Funksiya chaqirilganda kompilyator uni bajarish uchun biroz vaqt oladi. Agar funktsiya unchalik murakkab bo'lmasa, dasturchi funksiyani inline funksiyaga o'zgartirishi mumkin. Quyidagi dasturga qarang.
02-rasm: Inline holda funksiya
Hello print_hello oddiy funksiyadir. Funktsiya chaqirilganda "Salom" qatorini chop etadi. Ushbu funktsiyani bajarish vaqti 0,187 s. Inline kalit so'zidan quyidagi tarzda foydalanilganda, bajarish vaqti 0,064 soniyagacha qisqaradi.
03-rasm: Inline funksiya
Shuning uchun, inline kalit soʻzdan foydalanish orqali bajarilish vaqti qisqaradi. Agar tsikllar, switch iboralari va funksiyada statik oʻzgaruvchilar yoki rekursiv funksiyalar boʻlsa, inline funksiyalar ishlamasligi mumkin.
Makro va Inline funksiya oʻrtasidagi farq nima?
Makro va Inline Funktsiya |
|
Makro bu kodning bir qismi boʻlib, u dastur boshida xesh belgisi bilan qoʻshiladigan preprotsessor direktivasidir. | Inline funksiya - bu dasturning ishlash vaqtini minimallashtirish uchun C++ takomillashtirish xususiyati. |
Baholash vaqti | |
Makroda argument har safar dasturda ishlatilganda baholanadi. | Inlineda argument bir marta baholanadi. |
Tekshirildi | |
Makro protsessor tomonidan tekshiriladi. | Inline funksiya kompilyator tomonidan tekshiriladi. |
Kalit soʻz | |
Marko define dan foydalanadi. | Inline funksiyasi "inline" kalit so'zidan foydalanadi. |
Foydalanish | |
Makrodan konstantalar, ifodalarni belgilash, tom maʼnodagi matnni almashtirish va funksiyalarni aniqlash uchun foydalanish mumkin. | Dasturning ishlash vaqtini minimallashtirish uchun ichki funksiyadan foydalanish mumkin. |
Toʻxtatish | |
Makro yangi qator bilan tugaydi. | Inline funksiyasi inline funksiya oxiridagi jingalak qavs bilan tugaydi. |
Aniqlash nuqtasi | |
Marko dastur boshida belgilangan. | Inline funksiya sinf ichida yoki tashqarisida boʻlishi mumkin. |
Xulosa – Makro va Inline funksiya
Ushbu maqolada makro va Inline funksiya oʻrtasidagi farq muhokama qilingan. Bu tushunchalar C++ dasturlashda qo'llaniladi. Makro va Inline Funktsiya o'rtasidagi farq shundaki, makro preprotsessor tomonidan tekshiriladi, inline funksiya esa kompilyator tomonidan tekshiriladi.