Razlika med funkcijo makro in vgrajeno

Ključna razlika - Macro vs Inline Funkcija
 

Makro je delček kode, ki je predprocesorska direktiva. Funkcija vgrajevanja je funkcija izboljšave C ++, da zmanjša čas izvajanja programa. Zato je ključna razlika med Macro in Inline Function je to predprocesor makro preveri makro, medtem ko prevajalnik funkcijo vgradi.

Makro je vključen na začetek programa, pred katerim je hash znak. Ko je v programu ime makra, ga nadomesti vsebina makra.

VSEBINA

1. Pregled in ključne razlike
2. Kaj je makro
3. Kaj je funkcija Inline
4. Primerjava ob strani - funkcija makro proti vmesniku v tabeli
5. Povzetek

Kaj je makro?

Predprocesor je program, ki obdela izvorno kodo, preden preide skozi prevajalnik. Deluje z ukazno vrstico predhodnika ali z direktivami. V programu so predprocesorske direktive postavljene v izvorni program pred glavnim programom. Preden gre izvorna koda skozi prevajalnik, ga predhodnik preveri glede direktiv predhodnika. Predpogonske direktive imajo simbol #. Za razliko od drugih navedb se ne končajo s podpičjem. Ena vrsta direktiv za predprocesorje je makro. Na splošno so makroni napisani z velikimi tiskanimi črkami.

Slika 01: Program C ++ z makroni

V skladu z zgornjim programom vrstica 3 in vrstica 4 kažeta makra. Pri izračunu površine se vrednost PI nadomesti s pomočjo definiranega makra. V vrstici 14, volumen = CUBE (vrednost), predprocesor širi stavek kot volumen = (vrednost * vrednost * vrednost). Iskanje kocke lahko zapišemo kot funkcijo, tukaj pa je zapisana z makro. Če je izjava kot glasnost = CUBE (x + y), se bo razširila na glasnost = (x + y * x + y * x + y).

Nekaterih programskih žetonov je mogoče preprosto napačno vpisati. Nadomestimo jih lahko z uporabo makrov. npr. #define IN &&, #define ALI || Opredelitev makrov lahko vključuje tudi izraze, kot je #define AREA 4 * 5.56.

Kaj je funkcija Inline?

Ko se pokliče funkcija, prevajalniku potrebuje nekaj časa, da ga izvede. Če funkcija ni zelo zapletena, lahko programer funkcijo pretvori v vgrajeno funkcijo. Glejte spodnji program.

Slika 02: Funkcija brez inline

Print_hello je preprosta funkcija. Ko pokliče funkcijo, natisne niz "Hello". Čas izvajanja te funkcije je 0,187s. Če uporabite ključno besedo inline, se izvedbeni čas zmanjša na 0,064s.

Slika 03: Vgrajena funkcija

Zato se z uporabo ključne besede vgradi čas izvedbe. Vgrajene funkcije morda ne bodo delovale, če obstajajo zanke, stavki preklopa in če funkcija vsebuje statične spremenljivke ali rekurzivne funkcije.

Kakšna je razlika med funkcijo makro in vgrajeno?

Makro proti vgrajeni funkciji

Makro je delček kode, ki je predprocesorska direktiva, ki je vključena na začetku programa, pred katerim je hash znak. Funkcija vgrajevanja je funkcija izboljšave C ++, da zmanjša čas izvajanja programa.
Čas ocenjevanja
V makro se argument ovrednoti vsakič, ko ga uporabimo v programu. Vgrajeno je argument ovrednoten enkrat.
Preveril
Predprocesor preveri makro. Prevajalnik preveri vgrajeno funkcijo.
 Ključna beseda
Marco uporablja #define. Funkcija vgrajeno uporablja ključno besedo "inline".
Uporaba
Makro lahko uporabimo za definiranje konstant, izrazov, za dobesedno nadomeščanje besedila in za določanje funkcij itd. Vgrajena funkcija je mogoče uporabiti za zmanjšanje časa izvajanja programa.
Prekinitev
Makro preneha z novo vrstico. Funkcija vgrajevanja se konča s kodrastim naramnico na koncu funkcije v roki.
Definiranje točke
Marco je opredeljen na začetku programa. Vgrajena funkcija je lahko znotraj ali zunaj razreda.

Povzetek - Macro vs Inline Funkcija

Ta članek govori o razliki med makro in funkcijo Inline. Ti koncepti se uporabljajo v programiranju C ++. Razlika med makro in vdelano funkcijo je v tem, da makro preverja predprocesor, vgrajeno funkcijo pa prevajalnik.

Referenca:

1. "Predprocesne direktive." Cplusplus.com. Na voljo tukaj 
2. "C vgrajene funkcije." Www.tutorialspoint.com, Tutorials Point, 19. marca 2018. Na voljo tukaj