Skirtumas tarp įterptųjų ir makrokomandų

„Inline vs Macro“

Šiomis dienomis „C ++“ per daug nuėjo kompiuterinio programavimo srityje. Būdama galinga kalba, ji kartais šiek tiek painioja programuotojus dėl didžiulės funkcijų bibliotekos. „Inline“ funkcija yra viena iš jų, kurią galima lengvai supainioti su kalbos makrokomandomis.
Taip nėra, kad tarp jų yra nedidelis skirtumas, tačiau dėl jų turimų savybių jie gali šiek tiek painioti. Šiame straipsnyje mes plačiau aptarsime skirtumus tarp linijinės funkcijos ir makrokomandų C++.

Inline
„Inline“ funkcija yra tokia pati kaip bet kuri kita „C ++“ funkcija ir vadinama įprastu būdu. Funkcija, kurią ji atlieka, yra ta, kad ji sukuria sudaryto funkcijos apibrėžimo kopiją. Tai yra, ji sukuria apibrėžtų elementų kopiją, kurią reikia kompiliuoti. Pavyzdys gali būti pateiktas, jei pridedame bet kuriuos du sveikuosius skaičius ir vadiname tai „inline“ funkcija, kompiliatorius sukurs sveikų skaičių kopiją.
Pavyzdys:

Intarpų int suma (int x, int y)

Grįžti (x + y);

Makro
C ++ makrokomandos įgyvendina teksto pakeitimą programos eilutėje. Tai yra, jie pakeičia tekstą pagal funkcijos apibrėžimą. Skirtingai nei intarpas kaip funkcija, makrokomanda manipuliuoja kodu naudodama funkciją. Pavyzdžiui:
#define dvigubai (X) X * X

int y = 5;
int j = DVIGUBAS (++ y);

Čia gausime 30 vertę! Skambinimas buvo atliktas per makrokomandą, „X“ buvo pakeistas į ++ y, todėl ++ y turi būti padaugintas iš kito ++ y. Iš viso 5 * 6 yra 30, o ne 6. Šeši būtų pagrindinis, bet neteisingas atsakymas.

Dabar makrokomandas gali sukelti čia esanti klaida. Nuoseklią funkciją reikia išgelbėti nukopijavus reikšmes į kompiliatorių atmintį ir jas sukompiliavus.

Santrauka:

1.Inline funkcija sukuria funkcijos apibrėžimo kopiją.
2.Makrokomanda pakeičia tekstą, kuris identifikuojamas ir apibrėžtas funkcijos viduje.
3. „Inline“ funkcija taip pat taikoma, kai makrokomanda turėtų sukelti klaidą programoje.