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.
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.
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.
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.