Különbség a makró és a soron belüli funkció között

Tartalomjegyzék:

Különbség a makró és a soron belüli funkció között
Különbség a makró és a soron belüli funkció között

Videó: Különbség a makró és a soron belüli funkció között

Videó: Különbség a makró és a soron belüli funkció között
Videó: Inline Vs Macros in C++| By Professor Pankaj Gupta | BIIT 2024, Július
Anonim

Kulcskülönbség – Makró vs soron belüli funkció

A makró egy kódrészlet, amely egy előfeldolgozó direktíva. A beágyazott függvény egy C++ fejlesztési funkció, amely minimalizálja a program végrehajtási idejét. Ezért a legfontosabb különbség a makró és az inline függvény között az, hogy a makrót az előfeldolgozó ellenőrzi, míg a beépített függvényt a fordító.

A makró szerepel a program elején, amelyet egy hash jel előz meg. Ha a makró neve szerepel a programban, azt a makró tartalma helyettesíti.

Mi az a makró?

Az előfeldolgozó egy olyan program, amely feldolgozza a forráskódot, mielőtt az áthaladna a fordítón. Az előfeldolgozó parancssor vagy az direktívák használatával működik. A programban az előfeldolgozó direktívák a forrásprogramba kerülnek a főprogram elé. Mielőtt a forráskód áthaladna a fordítón, az előfeldolgozó ellenőrzi, hogy vannak-e előfeldolgozói direktívák. Az előfeldolgozó direktívákszimbólummal rendelkeznek. Más kijelentésekkel ellentétben ezek nem végződnek pontosvesszővel. Az előfeldolgozó direktívák egyik típusa a makró. Általában a makrókat nagybetűkkel írják.

Különbség a makró és az inline funkció között
Különbség a makró és az inline funkció között

01. ábra: C++ program makróval

A fenti program szerint a 3. és a 4. sor makrókat jelöl. A terület kiszámításakor a PI értéket a definiált makróval helyettesítjük. A 14. sorban, volume=CUBE(érték), az előfeldolgozó az utasítást volume=(értékértékérték) formában bontja ki. A kocka megkeresése felírható függvényként, de itt makróval írjuk. Ha van egy utasítás volume=CUBE(x+y), akkor ez volume=(x+yx+yx+y) értékre bővül.

Egyes programozási tokenek könnyen félregépelhetők. Ezeket makrók segítségével lehet cserélni. például. define AND &&, define VAGY ||. A makródefiníciók olyan kifejezéseket is tartalmazhatnak, mint define AREA 45.56.

Mi az Inline Function?

A függvény meghívásakor a fordítónak időbe telik a végrehajtása. Ha a függvény nem túl bonyolult, a programozó átalakíthatja a függvényt inline függvényré. Tekintse meg az alábbi programot.

A makró és a soron belüli függvény közötti különbség_2. ábra
A makró és a soron belüli függvény közötti különbség_2. ábra

02. ábra: Funkció Inline nélkül

A print_hello egy egyszerű függvény. A függvény meghívásakor a „Hello” karakterláncot írja ki. Ennek a függvénynek a végrehajtási ideje 0,187 s. Ha a soron belüli kulcsszót az alábbiak szerint használja, a végrehajtási idő 0,064 másodpercre csökken.

Legfontosabb különbség a makró és az inline funkció között
Legfontosabb különbség a makró és az inline funkció között

03. ábra: Beépített függvény

Ezért a soron belüli kulcsszó használatával a végrehajtási idő csökken. Előfordulhat, hogy a soron belüli függvények nem működnek, ha vannak ciklusok, switch utasítások, és ha a függvény statikus változókat vagy rekurzív függvényeket tartalmaz.

Mi a különbség a makró és a szövegközi függvény között?

Makró vs beépített funkció

A makró egy kódrészlet, amely egy előfeldolgozó direktíva, amely a program elején található, amelyet egy hash jel előz meg. A soron belüli függvény egy C++ bővítő funkció, amely minimalizálja a program végrehajtási idejét.
Értékelési idő
Makróban az argumentum minden alkalommal kiértékelésre kerül, amikor a programban használják. Inline-ben az argumentum egyszer kerül kiértékelésre.
Ellenőrizte
A makrót az előfeldolgozó ellenőrzi. Egy soron belüli függvényt ellenőriz a fordító.
Kulcsszó
Marco a define. A beágyazott függvény a 'inline' kulcsszót használja.
Használat
A makró használható konstansok, kifejezések meghatározására, szó szerinti szöveghelyettesítésre és függvények meghatározására stb. Egy soron belüli függvény használható a program végrehajtási idejének minimalizálására.
Felmondás
A makró az új sorral végződik. A soron belüli függvény a soron belüli függvény végén lévő kapcsos kapcsos zárójellel végződik.
A pont meghatározása
A Marco a program elején van meghatározva. Egy soron belüli függvény lehet az osztályon belül vagy kívül.

Összefoglaló – Makró vs beépített funkció

Ez a cikk a makró és az inline funkció közötti különbséget tárgyalja. Ezeket a fogalmakat a C++ programozásban használják. A különbség a makró és az inline függvény között az, hogy a makrót az előfeldolgozó, míg a beépített függvényeket a fordító ellenőrzi.

Ajánlott: