Razlika med makro in vgrajeno funkcijo

Kazalo:

Razlika med makro in vgrajeno funkcijo
Razlika med makro in vgrajeno funkcijo

Video: Razlika med makro in vgrajeno funkcijo

Video: Razlika med makro in vgrajeno funkcijo
Video: IL MIO PRIMO VIDEO!!!! USIAMO LE MACRO SU MAKE MORE!! 2024, November
Anonim

Ključna razlika – makro v primerjavi z vgrajeno funkcijo

Makro je delček kode, ki je direktiva predprocesorja. Vgrajena funkcija je funkcija izboljšave C++ za zmanjšanje časa izvajanja programa. Zato je ključna razlika med makrom in vgrajeno funkcijo ta, da makro preveri predprocesor, medtem ko vdelano funkcijo preveri prevajalnik.

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

Kaj je makro?

Preprocesor je program, ki obdela izvorno kodo, preden gre ta skozi prevajalnik. Deluje z uporabo ukazne vrstice predprocesorja ali direktiv. V programu so direktive predprocesorja postavljene v izvorni program pred glavni program. Preden gre izvorna koda skozi prevajalnik, jo predprocesor preveri za direktive predprocesorja. Direktive predprocesorja imajo simbol. Za razliko od drugih stavkov se ne končajo s podpičjem. Ena vrsta direktiv predprocesorja je makro. Na splošno so makri napisani z velikimi črkami.

Razlika med makro in inline funkcijo
Razlika med makro in inline funkcijo

Slika 01: Program C++ z makri

V skladu z zgornjim programom vrstica 3 in vrstica 4 označujeta makre. Pri izračunu površine se vrednost PI nadomesti z definiranim makrom. V vrstici 14, volume=CUBE(value), predprocesor razširi stavek kot volume=(valuevaluevalue). Iskanje kocke je lahko zapisano kot funkcija, tukaj pa je zapisano z uporabo makra. Če obstaja izjava kot prostornina=KOCKA(x+y), se bo razširila na prostornino=(x+yx+yx+y).

Nekatere programske žetone je mogoče zlahka zatipkati napačno. Lahko jih zamenjamo z makri. npr. define IN &&, define ALI ||. Definicija makra lahko vključuje tudi izraze, kot je define AREA 45.56.

Kaj je vgrajena funkcija?

Ko je funkcija poklicana, prevajalnik potrebuje nekaj časa, da jo izvede. Če funkcija ni zelo zapletena, jo lahko programer pretvori v vgrajeno funkcijo. Oglejte si spodnji program.

Razlika med makro in inline funkcijo_Slika 2
Razlika med makro in inline funkcijo_Slika 2

Slika 02: Funkcija brez Inline

print_hello je preprosta funkcija. Ob klicu funkcije natisne niz »Hello«. Čas izvajanja te funkcije je 0,187 s. Pri uporabi vgrajene ključne besede, kot sledi, se čas izvajanja zmanjša na 0,064 s.

Ključna razlika med makro in vgrajeno funkcijo
Ključna razlika med makro in vgrajeno funkcijo

Slika 03: Vgrajena funkcija

Zato se z uporabo inline ključne besede skrajša čas izvajanja. Vgrajene funkcije morda ne bodo delovale, če obstajajo zanke, preklopni stavki in če funkcija vsebuje statične spremenljivke ali rekurzivne funkcije.

Kakšna je razlika med makro in vgrajeno funkcijo?

Makro proti funkciji v vrstici

Makro je delček kode, ki je direktiva predprocesorja, ki je vključena na začetku programa in pred njim stoji dišol. Vgrajena funkcija je funkcija izboljšave C++ za zmanjšanje časa izvajanja programa.
Čas ocenjevanja
V makru je argument ovrednoten vsakič, ko je uporabljen v programu. V vrstici je argument ovrednoten enkrat.
Preveril
Makro preveri predprocesor. Vgrajeno funkcijo preveri prevajalnik.
Ključna beseda
Marco uporablja define. Funkcija inline uporablja ključno besedo 'inline'.
Uporaba
Makro lahko uporabite za definiranje konstant, izrazov, za dobesedno zamenjavo besedila in za definiranje funkcij itd. Vgrajeno funkcijo je mogoče uporabiti za zmanjšanje časa izvajanja programa.
Odpoved
Makro se konča z novo vrstico. Funkcija v vrstici se konča z zavitim oklepajem na koncu funkcije v vrstici.
Določilna točka
Marco je definiran na začetku programa. Vgrajena funkcija je lahko znotraj ali zunaj razreda.

Povzetek – Makro proti funkciji v vrstici

Ta članek je razpravljal o razliki med makrom in vgrajeno funkcijo. Ti koncepti se uporabljajo v programiranju C++. Razlika med makrom in vgrajeno funkcijo je v tem, da makro preveri predprocesor, medtem ko vgrajeno funkcijo preveri prevajalnik.

Priporočena: