Makro va Inline funksiya oʻrtasidagi farq

Mundarija:

Makro va Inline funksiya oʻrtasidagi farq
Makro va Inline funksiya oʻrtasidagi farq

Video: Makro va Inline funksiya oʻrtasidagi farq

Video: Makro va Inline funksiya oʻrtasidagi farq
Video: Investitsiya va iste'mol | Yalpi ichki mahsulot | Makroiqtisodiyot 2024, Iyul
Anonim

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.

Makro va Inline funksiya o'rtasidagi farq
Makro va Inline funksiya o'rtasidagi farq

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.

Makro va Inline funksiya o'rtasidagi farq_2-rasm
Makro va Inline funksiya o'rtasidagi farq_2-rasm

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.

Makro va Inline funksiya o'rtasidagi asosiy farq
Makro va Inline funksiya o'rtasidagi asosiy farq

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.

Tavsiya: