Ključna razlika – Makro vs Inline funkcija
Makro je fragment koda, koji je direktiva pretprocesora. Inline funkcija je funkcija poboljšanja C++-a za minimiziranje vremena izvršavanja programa. Stoga je ključna razlika između makroa i inline funkcije u tome što makro provjerava pretprocesor dok inline funkciju provjerava kompajler.
Makro je uključen na početku programa kojem prethodi heš znak. Kada u programu postoji ime makroa, ono se zamjenjuje sadržajem makroa.
Šta je makro?
Preprocesor je program koji obrađuje izvorni kod prije nego što prođe kroz kompajler. Radi pomoću komandne linije predprocesora ili direktiva. U programu se direktive pretprocesora postavljaju u izvorni program prije glavnog programa. Prije nego što izvorni kod prođe kroz kompajler, pretprocesor ga provjerava da li postoje direktive pretprocesora. Direktive preprocesora imaju simbol. Za razliku od drugih izjava, one se ne završavaju tačkom i zarezom. Jedna vrsta direktive preprocesora je makro. Generalno, makroi se pišu velikim slovima.
Slika 01: C++ program sa makroima
Prema gore navedenom programu, red 3 i red 4 označavaju makroe. Prilikom izračunavanja površine, PI vrijednost se zamjenjuje pomoću definiranog makroa. U redu 14, volumen=CUBE(vrijednost), predprocesor proširuje izraz kao volumen=(vrijednostvrijednostvrijednost). Pronalaženje kocke može se zapisati kao funkcija, ali ovdje se zapisuje pomoću makroa. Ako postoji izjava kao volumen=CUBE(x+y), onda će se proširiti na volumen=(x+yx+yx+y).
Neki programski tokeni mogu lako biti pogrešno upisani. Mogu se zamijeniti pomoću makroa. npr. define AND &&, define OR ||. Makro definicija također može uključivati izraze kao što je define AREA 45.56.
Šta je inline funkcija?
Kada se pozove funkcija, kompajleru je potrebno neko vrijeme da je izvrši. Ako funkcija nije jako složena, programer može pretvoriti funkciju u inline funkciju. Pogledajte program ispod.
Slika 02: Funkcija bez Inline
print_hello je jednostavna funkcija. Ispisuje string “Hello” kada se funkcija pozove. Vrijeme izvršenja za tu funkciju je 0,187s. Kada koristite inline ključnu riječ na sljedeći način, vrijeme izvršenja se smanjuje na 0,064s.
Slika 03: Inline funkcija
Stoga, korištenjem inline ključne riječi, vrijeme izvršenja se smanjuje. Inline funkcije možda neće raditi ako postoje petlje, naredbe switch i ako funkcija sadrži statičke varijable ili rekurzivne funkcije.
Koja je razlika između makro i inline funkcije?
Makro vs Inline funkcija |
|
Makro je fragment koda, koji je predprocesorska direktiva koja je uključena na početku programa kojoj prethodi hash znak. | Umetnuta funkcija je funkcija poboljšanja C++-a za minimiziranje vremena izvršavanja programa. |
Vrijeme procjene | |
U makrou, argument se evaluira svaki put kada se koristi u programu. | U inline, argument se evaluira jednom. |
Provjerio | |
Makro provjerava predprocesor. | Inline funkciju provjerava kompajler. |
Ključna riječ | |
Marco koristi define. | Inline funkcija koristi ključnu riječ 'inline'. |
Upotreba | |
Makro se može koristiti za definiranje konstanti, izraza, za doslovnu zamjenu teksta i za definiranje funkcija itd. | Inline funkcija se može koristiti za minimiziranje vremena izvršavanja programa. |
Raskid | |
Makro se završava novom linijom. | Inline funkcija se završava vitičastom zagradom na kraju inline funkcije. |
Definirajuća tačka | |
A Marco je definisan na početku programa. | Unutarnja funkcija može biti unutar ili izvan klase. |
Sažetak – Makro vs Inline funkcija
Ovaj članak govori o razlici između makro i inline funkcije. Ovi koncepti se koriste u C++ programiranju. Razlika između makroa i inline funkcije je u tome što makro provjerava pretprocesor dok inline funkciju provjerava kompajler.