Rozdíl mezi makro a inline funkcí

Klíčový rozdíl - MaCro vs Inline Funkce
 

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.

OBSAH

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í

Co je to Makro?

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.

Co je Inline funkce?

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.

Jaký je rozdíl mezi makro a inline funkcí?

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.

souhrn - MaCro vs Inline Funkce

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

Odkaz:

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