Rozdíl Mezi Makro A Vloženou Funkcí

Obsah:

Rozdíl Mezi Makro A Vloženou Funkcí
Rozdíl Mezi Makro A Vloženou Funkcí

Video: Rozdíl Mezi Makro A Vloženou Funkcí

Video: Rozdíl Mezi Makro A Vloženou Funkcí
Video: LG Optimus 3D. ВырвиГлаз 2024, Smět
Anonim

Klíčový rozdíl - makro vs inline funkce

Makro je fragment kódu, což je direktiva preprocesoru. Vložená funkce je funkce vylepšení C ++, která minimalizuje dobu provádění programu. Klíčovým rozdílem mezi makrem a inline funkcí je tedy to, že makro je kontrolováno preprocesorem, zatímco inline funkce je kontrolována kompilátorem.

Makro je zahrnuto na začátku programu, před kterým je 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 funkce Inline

4. Porovnání vedle sebe - 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 do zdrojového programu před hlavní program. Před tím, než zdrojový kód projde kompilátorem, je zkontrolován preprocesorem na direktivy preprocesoru. Direktivy preprocesoru mají symbol #. Na rozdíl od jiných příkazů nekončí středníkem. Jedním typem direktivy preprocesoru je makro. Makra jsou obecně psána velkými písmeny.

Rozdíl mezi makro a vloženou funkcí
Rozdíl mezi makro a vloženou funkcí

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 se hodnota PI nahradí pomocí definovaného makra. V řádku 14, volume = CUBE (hodnota), preprocesor rozšíří příkaz jako volume = (hodnota * hodnota * hodnota). Nalezení krychle lze zapsat jako funkci, ale zde se zapisuje pomocí makra. Pokud existuje příkaz jako volume = CUBE (x + y), rozbalí se na volume = (x + y * x + y * x + y).

Některé programovací tokeny mohou být snadno chybně napsány. Mohou být nahrazeny pomocí maker. např. #define AND &&, #define OR ||. Definice makra může také zahrnovat výrazy, jako například #define AREA 4 * 5.56.

Co je funkce Inline?

Při volání funkce kompilátoru trvá nějakou dobu, než ji provede. Pokud funkce není příliš složitá, může programátor převést funkci na vloženou funkci. Viz níže uvedený program.

Rozdíl mezi makrem a vloženou funkcí Obrázek 2
Rozdíl mezi makrem a vloženou funkcí Obrázek 2

Obrázek 02: Funkce bez vloženého řádku

Print_hello je jednoduchá funkce. Při volání funkce vytiskne řetězec „Hello“. Čas provedení pro tuto funkci je 0,187 s. Při použití inline klíčového slova následujícím způsobem se doba spuštění sníží na 0,064 s.

Klíčový rozdíl mezi makro a vloženou funkcí
Klíčový rozdíl mezi makro a vloženou funkcí

Obrázek 03: Inline funkce

Proto se pomocí inline klíčového slova snižuje doba provádění. Vložené 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 vloženou funkcí?

Rozdílný článek uprostřed před tabulkou

Makro vs vložená funkce

Makro je fragment kódu, což je direktiva preprocesoru, která je zahrnuta na začátku programu a před kterou je 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. V řádku je argument vyhodnocen jednou.
Zkontrolováno
Makro je zkontrolováno preprocesorem. Vložená funkce je zkontrolová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 doslovnému nahrazení textu a k definování funkcí atd. Vloženou 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.

Shrnutí - Funkce Makro vs Inline

Tento článek pojednával o rozdílech mezi makry a vloženými funkcemi. Tyto koncepty se používají v programování v C ++. Rozdíl mezi funkcí makro a vložená funkce spočívá v tom, že makro je kontrolováno preprocesorem, zatímco vložená funkce je kontrolována kompilátorem.

Doporučená: