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