Rozdíl mezi inline a makro

Vložené vs makro

C ++ zašlo v oblasti počítačového programování v těchto dnech příliš daleko. Protože se jedná o mocný jazyk, někdy je pro programátory trochu matoucí kvůli jeho obrovské knihovně funkcí. Inline funkce je jedním z nich, který lze snadno zaměnit s makry v jazyce.
Není to tak, že by mezi nimi byl menší rozdíl, ale kvůli vlastnostem, které drží, mohou být trochu matoucí. V tomto článku budeme diskutovat více o rozdílech mezi inline funkcí a makry v C++.

V souladu
Inline funkce je jako každá jiná funkce v C ++ a je také volána běžným způsobem. Funkce, kterou provádí, je, že vytvoří kopii definice kompilované funkce. To znamená, že vytvoří kopii definovaných položek k kompilaci. Příklad může být učiněn, pokud přidáme libovolná dvě celá čísla a nazveme ji funkcí inline, kompilátor vytvoří kopii celých čísel, která se mají kompilovat.
Příklad:

Inline int součet (int x, int y)

Návrat (x + y);

Makro
Makra v jazyce C ++ implementují nahrazení textu v programovém řádku. To znamená, že nahrazují text podle změny definované ve funkci. Na rozdíl od inline jako funkce makro manipuluje s kódem pomocí funkce. Například:
#define DOUBLE (X) X * X

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

Zde dostaneme hodnotu jako 30! Protože volání bylo provedeno pomocí makra, „X“ bylo nahrazeno ++ y, což způsobí, že se ++ y vynásobí dalším ++ y. Tím je celkem 5 * 6, což je 30 ne 6. Šest by bylo základní, ale špatnou odpovědí.

Makra teď možná způsobují chybu. Inline funkce tedy přijde na záchranu zkopírováním hodnot do paměti kompilátorů a jejich kompilací.

Souhrn:

1.Inline funkce vytvoří kopii definice funkce.
2. Makro nahrazuje text, jak je identifikován a definován ve funkci.
3.Inline funkce je také použita, když má makro způsobovat chybu v programu.