Rozdiel medzi inline a makro

Inline vs Macro

C ++ prešla v oblasti počítačového programovania v týchto dňoch príliš ďaleko. Keďže je to silný jazyk, niekedy je pre programátorov trochu mätúce kvôli jeho obrovskej knižnici funkcií. Inline funkcia je jedným z nich, ktorý sa dá ľahko zamieňať s makrom v jazyku.
Neznamená to, že medzi nimi existuje malý rozdiel, ale kvôli vlastnostiam, ktoré majú, môžu byť trochu mätúce. V tomto článku budeme diskutovať viac o rozdieloch medzi inline funkciou a makrom v C++.

V rade
Vložená funkcia je rovnako ako každá iná funkcia v C ++ a nazýva sa tiež bežným spôsobom. Funkcia, ktorú vykonáva, je, že vytvára kópiu kompilovanej definície funkcie. To znamená, že vytvorí kópiu definovaných položiek na zostavenie. Ako príklad môžeme uviesť, ak pridávame akékoľvek dve celé čísla a nazývame ho inline funkciou, kompilátor vytvorí kópiu celých čísel, ktoré sa majú kompilovať.
Príklad:

Inline int suma (int x, int y)

Návrat (x + y);

makro
Makrá v jazyku C ++ implementujú nahradenie textu v programovom riadku. To znamená, že nahrádzajú text podľa zmeny definovanej vo funkcii. Na rozdiel od inline ako funkcie, makro manipuluje s kódom pomocou funkcie. Napríklad:
# define DOUBLE (X) X * X

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

Tu dostaneme hodnotu ako 30! Pretože sa volanie uskutočňovalo prostredníctvom makra, písmeno „X“ bolo nahradené ++ y, vďaka čomu sa ++ y vynásobí ďalším ++ y. Celkovo to znamená 5 * 6, teda 30 nie 6. Šesť by bolo základnou, ale nesprávnou odpoveďou.

Teraz môžu makra spôsobiť chybu. Inline funkcia teda prichádza k záchrane tak, že skopíruje hodnoty do pamäte kompilátora a potom ich zostaví.

Zhrnutie:

1.Inline funkcia vytvorí kópiu definície funkcie.
2. Makro nahrádza text tak, ako je identifikovaný a definovaný v rámci funkcie.
3. Inline funkcia sa použije aj vtedy, keď má makro spôsobiť v programe chybu.