Rozdiel Medzi Makrom A Vloženou Funkciou

Obsah:

Rozdiel Medzi Makrom A Vloženou Funkciou
Rozdiel Medzi Makrom A Vloženou Funkciou

Video: Rozdiel Medzi Makrom A Vloženou Funkciou

Video: Rozdiel Medzi Makrom A Vloženou Funkciou
Video: CS50 2014 - Лекция Стива Балмера по CS50 2024, November
Anonim

Kľúčový rozdiel - makro vs inline funkcia

Makro je fragment kódu, ktorý je preprocesorovou smernicou. Vložená funkcia je funkcia vylepšenia C ++, ktorá minimalizuje čas vykonávania programu. Kľúčovým rozdielom medzi makrom a inline funkciou preto je, že makro je kontrolované preprocesorom, zatiaľ čo inline funkciu kontroluje kompilátor.

Na začiatku programu je zahrnuté makro, pred ktorým je znak hash. Ak je v programe názov makra, nahradí sa obsahom makra.

OBSAH

1. Prehľad a kľúčový rozdiel

2. Čo je to makro

3. Čo je to riadková funkcia

4. Porovnanie vedľa seba - funkcia makro vs. vložená funkcia v tabuľkovej forme

5. Zhrnutie

Čo je to makro?

Preprocesor je program, ktorý spracuje zdrojový kód skôr, ako prejde kompilátorom. Funguje pomocou príkazového riadku preprocesora alebo podľa príkazov. V programe sú smernice preprocesora umiestnené v zdrojovom programe pred hlavným programom. Predtým, ako zdrojový kód prejde kompilátorom, skontroluje ho preprocesor na direktívy preprocesora. Prípravné smernice majú symbol #. Na rozdiel od iných tvrdení sa nekončia bodkočiarkou. Jedným z typov preprocesorovej smernice je makro. Makrá sú spravidla písané veľkými písmenami.

Rozdiel medzi makrom a vloženou funkciou
Rozdiel medzi makrom a vloženou funkciou

Obrázok 01: Program C ++ s makrami

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

Niektoré programovacie tokeny môžu byť nesprávne napísané. Môžu byť nahradené pomocou makier. napr. #define AND &&, #define OR ||. Definícia makra môže obsahovať aj výrazy, ako napríklad #define AREA 4 * 5.56.

Čo je to vložená funkcia?

Keď sa volá funkcia, kompilátoru trvá istý čas, kým ju vykoná. Ak funkcia nie je príliš zložitá, programátor ju môže previesť na vloženú funkciu. Pozrite si nižšie uvedený program.

Rozdiel medzi makrom a vloženou funkciou obrázok 2
Rozdiel medzi makrom a vloženou funkciou obrázok 2

Obrázok 02: Funkcia bez vloženého riadku

Print_hello je jednoduchá funkcia. Pri volaní funkcie vytlačí reťazec „Hello“. Čas vykonania pre túto funkciu je 0,187 s. Pri nasledujúcom použití kľúčového slova inline sa čas vykonávania zníži na 0,064 s.

Kľúčový rozdiel medzi makrom a funkciou vloženia
Kľúčový rozdiel medzi makrom a funkciou vloženia

Obrázok 03: Inline funkcia

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

Aký je rozdiel medzi makrom a vloženou funkciou?

Rozdielny článok v strede pred tabuľkou

Makro vs vložená funkcia

Makro je fragment kódu, čo je preprocesorová smernica, ktorá je zahrnutá na začiatku programu a pred ktorou je znak hash. Vložená funkcia je funkcia vylepšenia C ++, ktorá minimalizuje čas vykonávania programu.
Čas vyhodnotenia
V makre sa argument vyhodnotí zakaždým, keď sa použije v programe. V riadku sa argument vyhodnotí raz.
Skontrolované
Preprocesor kontroluje makro. Inline funkcia je kontrolovaná kompilátorom.
Kľúčové slovo
Marco používa #define. Funkcia inline používa kľúčové slovo 'inline'.
Využitie
Makro je možné použiť na definovanie konštánt, výrazov, na doslovné nahradenie textu a na definovanie funkcií atď. Na minimalizáciu času vykonania programu je možné použiť vloženú funkciu.
Ukončenie
Makro sa končí novým riadkom. Inline funkcia končí zloženou zátvorkou na konci inline funkcie.
Definujúci bod
Marco je definovaný na začiatku programu. Vložená funkcia môže byť vo vnútri alebo mimo triedy.

Zhrnutie - funkcia makro vs vložená funkcia

Tento článok pojednáva o rozdieloch medzi funkciami Macro a Inline Function. Tieto koncepty sa používajú v programovaní v C ++. Rozdiel medzi funkciou Makro a Inline je ten, že makro kontroluje preprocesor, zatiaľ čo inline funkciu kontroluje kompilátor.

Odporúčaná: