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