Rozdiel medzi makro a inline funkciou

Kľúčový rozdiel - MaCro vs Inline funkcie
 

Makro je fragment kódu, ktorý je smernicou o preprocesore. Inline funkcia je funkcia vylepšenia C ++, ktorá minimalizuje čas vykonávania programu. Preto kľúčový rozdiel medzi Macro a Inline Function je to makro je kontrolované preprocesorom, zatiaľ čo inline funkcia je kontrolovaná kompilátorom.

Makro je zahrnuté na začiatku programu, ktorému predchádza znak hash. Ak je v programe názov makra, nahradí sa jeho obsahom.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je to Macro
3. Čo je inline funkcia
4. Porovnanie bok po boku - makro vs inline funkcia v tabuľkovej forme
5. Zhrnutie

Čo je makro?

Preprocesor je program, ktorý spracováva zdrojový kód predtým, ako prechádza kompilátorom. Pracuje s príkazovým riadkom preprocesora alebo podľa smerníc. V programe sú direktívy pre procesory umiestnené v zdrojovom programe pred hlavným programom. Predtým, ako zdrojový kód prejde kompilátorom, ho preprocesor skontroluje, či neobsahuje smernice pre preprocesor. Smernice pre preprocesory majú symbol #. Na rozdiel od iných tvrdení nekončia bodkočiarkou. Jedným typom smernice o preprocesoroch je makro. Všeobecne sú makrá napísané veľkými písmenami.

Obrázok 01: Program C ++ s makrami

Podľa vyššie uvedeného programu riadok 3 a riadok 4 označujú makra. Pri výpočte oblasti sa hodnota PI nahradí definovaným makrom. V riadku 14, volume = CUBE (value), preprocesor rozšíri príkaz ako volume = (value * value * value). Nájdenie kocky sa dá zapísať ako funkcia, ale tu sa zapisuje pomocou makra. Ak existuje príkaz ako volume = CUBE (x + y), potom sa rozšíri na volume = (x + y * x + y * x + y).

Niektoré programovacie tokeny sa môžu ľahko pomýliť. Môžu byť nahradené pomocou makier. napr. #define AND &&, #define ALEBO || Definícia makra môže obsahovať aj výrazy ako #define AREA 4 * 5.56.

Čo je inline funkcia?

Keď sa volá funkcia, kompilátor nejakú dobu potrebuje na jej vykonanie. Ak funkcia nie je príliš zložitá, programátor môže túto funkciu previesť na vloženú funkciu. Pozrite si nasledujúci program.

Obrázok 02: Funkcia bez vloženia

Print_hello je jednoduchá funkcia. Pri volaní funkcie vytlačí reťazec „Hello“. Čas vykonávania tejto funkcie je 0,187 s. Pri použití inline kľúčového slova nasledovne sa čas vykonávania skráti na 0,064 s.

Obrázok 03: Inline funkcia

Preto sa použitím inline kľúčového slova čas vykonávania skracuje. Vložené funkcie nemusia fungovať, ak existujú slučky, príkazy prepínačov a ak funkcia obsahuje statické premenné alebo rekurzívne funkcie.

Aký je rozdiel medzi funkciou Macro a Inline?

Funkcia Makro vs Inline

Makro je fragment kódu, čo je smernica o preprocesore, ktorá je zahrnutá na začiatku programu, ktorému predchádza znak hash. Inline funkcia je funkcia vylepšenia C ++, ktorá minimalizuje čas vykonávania programu.
vyhodnotenie Time
V makre sa argument vyhodnocuje zakaždým, keď sa použije v programe. Inline sa argument vyhodnotí raz.
Skontrolované
Makro je kontrolované preprocesorom. Inline funkcia je kontrolovaná kompilátorom.
 kľúčové
Marco používa #define. Funkcia inline používa kľúčové slovo „inline“.
používanie
Makro sa dá použiť na definovanie konštánt, výrazov, na nahradenie doslovného textu a na definovanie funkcií atď. Inline funkciu možno použiť na minimalizovanie času vykonávania programu.
ukončenie
Makro končí novým riadkom. Inline funkcia sa končí zloženou zátvorkou na konci inline funkcie.
Definovanie bodu
Marco je definovaný na začiatku programu. Inline funkcia môže byť vo vnútri alebo mimo triedy.

zhrnutie - maCro vs Inline funkcie

V tomto článku sa diskutuje o rozdieloch medzi funkciami Macro a Inline Function. Tieto koncepcie sa používajú pri programovaní v C ++. Rozdiel medzi makro a inline funkciou spočíva v tom, že makro je kontrolované preprocesorom, zatiaľ čo inline funkcia je kontrolovaná kompilátorom..

referencie:

1. „Smernice o predprocesoroch“. Cplusplus.com. K dispozícii tu 
2. „Vložené funkcie C“. Www.tutorialspoint.com, Point of Tutorials, 19. 3. 2018. K dispozícii tu