Inline a makro

Anonim

Inline vs. Macro

C ++ je v dnešní době příliš daleko v oblasti počítačového programování. Být mocným jazykem, občas se pro programátory trochu matou kvůli své obrovské knihovně funkcí. Inline funkce je jedna z nich, která může být snadno zaměňována s makrami v jazyce. Nejedná se o to, že je mezi těmito dvěma malými rozdíly, ale mohou být trochu matoucí kvůli vlastnostem, které drží. V tomto článku budeme diskutovat o rozdílech mezi funkcemi inline a makrami v jazyce C ++.

V souladu Funkce inline je stejně jako každá jiná funkce v jazyce C ++ a je také volána pravidelným způsobem. Funkce, kterou provádí, je, že vytvoří kopii definice kompilované funkce. To znamená, že vytvoří kopii definovaných položek ke kompilaci. Příkladem může být, když přidáme libovolné dvě celá čísla a nazveme to inline funkci, kompilátor vytvoří kopii celých čísel, které mají být sestaveny. Příklad:

Inline int součet (int x, int y) { Návrat (x + y); }

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

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

Zde získáme hodnotu 30! Protože volání bylo provedeno pomocí makra, "X" bylo nahrazeno ++ y, které činí ++ y násobenou jiným ++ y. To činí celkem 5 * 6, což je 30 ne 6. Šest by bylo základní, ale špatná odpověď.

Nyní mohou makra způsobit chybu. Takže inline funkce přichází k záchraně kopírováním hodnot do paměti kompilátorů a následnou kompilací.

Souhrn:

1.Vnitřní funkce vytvoří kopii definice funkce. 2. Makro nahrazuje text, který je identifikován a definován v rámci funkce. 3. Funkce inline je také použita, pokud má makro způsobit chybu v programu.