Razlika med linijo in makro

Inline vs Macro

C ++ je v teh dneh na področju računalniškega programiranja šel predaleč. Ker je močan jezik, včasih programerje nekoliko zmede zaradi svoje ogromne knjižnice funkcij. Funkcija Inline je ena izmed njih, ki jo je mogoče enostavno zamenjati z makroi v jeziku.
Ne gre za to, da je razlika med njima manjša, vendar sta lahko zaradi lastnosti, ki ju imata, nekoliko zmedeni. V tem članku bomo več razpravljali o razlikah med vgrajeno funkcijo in makroi v C-ju++.

V vrsti
Vgrajena funkcija je tako kot vsaka druga funkcija v C ++ in jo imenujemo tudi na običajen način. Funkcija, ki jo opravlja, je ta, da ustvari kopijo sestavljene definicije funkcije. To pomeni, da ustvari kopijo opredeljenih elementov, ki jih je treba sestaviti. Primer lahko vzamemo, če dodamo katera koli cela števila in ga poimenujemo inline funkcija, bo prevajalnik ustvaril kopijo celih števil, ki jih je treba sestaviti.
Primer:

Inline vsota (int x, int y)

Vrnitev (x + y);

Makro
Makroni v C ++ izvajajo zamenjavo besedila v programski vrstici. To pomeni, da nadomestijo besedilo glede na spremembo, določeno v funkciji. Za razliko od inline kot funkcije, makro manipulira s kodo s pomočjo funkcije. Na primer:
#define DVOJNI (X) X * X

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

Tu bomo dobili vrednost kot 30! Ker je bil klic opravljen prek makra, je "X" zamenjan z ++ y, zaradi česar je ++ y pomnoženo z drugim ++ y. Tako je skupno 5 * 6, kar je 30, ne 6. Šest bi bil osnovni, vendar napačen odgovor.

Zdaj lahko makroni povzročajo hrošče. Inline funkcija se reši tako, da vrednosti kopira v pomnilnik prevajalnikov in nato predela.

Povzetek:

1. Vgrajena funkcija ustvari kopijo definicije funkcije.
2.Makro nadomešča besedilo, kot je opredeljeno in opredeljeno v funkciji.
3. Vgrajena funkcija se uporablja tudi, kadar naj bi makro povzročal napako v programu.