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.
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.
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.
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.