Makro je fragment kódu, který je direktivou preprocesoru. Vložená funkce je funkce vylepšení C ++, která minimalizuje dobu provádění programu. Proto, klíčový rozdíl mezi Macro a Inline Function je to Makro je kontrolováno preprocesorem, zatímco kompilátor kontroluje inline funkci.
Makro je zahrnuto na začátku programu, kterému předchází znak hash. Pokud je v programu název makra, je nahrazen obsahem makra.
1. Přehled a klíčový rozdíl
2. Co je to Makro
3. Co je inline funkce
4. Porovnání bok po boku - funkce Makro vs Inline ve formě tabulky
5. Shrnutí
Preprocesor je program, který zpracovává zdrojový kód před tím, než projde kompilátorem. Funguje pomocí příkazového řádku preprocesoru nebo směrnic. V programu jsou direktivy preprocesoru umístěny ve zdrojovém programu před hlavním programem. Před tím, než zdrojový kód prochází kompilátorem, je preprocesorem zkontrolován direktivy preprocesoru. Direktivy preprocesoru mají symbol #. Na rozdíl od jiných tvrzení nekončí středníkem. Jedním typem směrnice o preprocesoru je makro. Obecně jsou makra psána velkými písmeny.
Obrázek 01: Program C ++ s makry
Podle výše uvedeného programu řádek 3 a řádek 4 označují makra. Při výpočtu plochy je hodnota PI nahrazena definovaným makrem. V řádku 14, objem = CUBE (hodnota), preprocesor rozšíří příkaz jako objem = (hodnota * hodnota * hodnota). Nalezení krychle lze napsat jako funkci, ale zde se zapisuje pomocí makra. Pokud existuje příkaz jako volume = CUBE (x + y), pak se rozbalí na volume = (x + y * x + y * x + y).
Některé programovací tokeny mohou být snadno zadány nesprávně. Mohou být nahrazeny pomocí maker. např. #define AND &&, #define OR ||. Definice makra může také zahrnovat výrazy jako #define AREA 4 * 5.56.
Při vyvolání funkce kompilátor nějakou dobu trvá, než ji provede. Pokud funkce není příliš složitá, programátor ji může převést na vloženou funkci. Viz níže uvedený program.
Obrázek 02: Funkce bez vloženého
Print_hello je jednoduchá funkce. Při vyvolání funkce vytiskne řetězec „Hello“. Doba provedení této funkce je 0,187 s. Při použití inline klíčového slova následujícím způsobem se doba spuštění zkrátí na 0,064s.
Obrázek 03: Inline funkce
Proto se použitím inline klíčového slova zkracuje doba provádění. Inline funkce nemusí fungovat, pokud existují smyčky, příkazy switch a pokud funkce obsahuje statické proměnné nebo rekurzivní funkce.
Funkce Makro vs Inline | |
Makro je fragment kódu, což je směrnice o preprocesoru, která je zahrnuta na začátku programu, kterému předchází znak hash. | Vložená funkce je funkce vylepšení C ++, která minimalizuje dobu provádění programu. |
Čas vyhodnocení | |
V makru je argument vyhodnocen pokaždé, když je použit v programu. | Inline je argument vyhodnocen jednou. |
Zkontrolováno | |
Makro je kontrolováno preprocesorem. | Inline funkce je kontrolována kompilátorem. |
Klíčové slovo | |
Marco používá #define. | Funkce inline používá klíčové slovo „inline“. |
Používání | |
Makro lze použít k definování konstant, výrazů, k nahrazení doslovného textu ak definování funkcí atd. | Inline funkci lze použít k minimalizaci doby provádění programu. |
Ukončení | |
Makro končí novým řádkem. | Inline funkce končí složenou závorkou na konci inline funkce. |
Definování bodu | |
Marco je definován na začátku programu. | Vložená funkce může být uvnitř nebo vně třídy. |
Tento článek pojednává o rozdílu mezi makro a inline funkcí. Tyto koncepty se používají při programování v C ++. Rozdíl mezi funkcí Makro a Inline spočívá v tom, že makro je kontrolováno preprocesorem, zatímco inline funkce je kontrolována kompilátorem..
1. „Směrnice o předběžném zpracování.“ Cplusplus.com. K dispozici zde
2. „Vložené funkce C“. Www.tutorialspoint.com, Tutorials Point, 19. 3. 2018. K dispozici zde