Razlika između makronaredbe i ugrađene funkcije

Sadržaj:

Razlika između makronaredbe i ugrađene funkcije
Razlika između makronaredbe i ugrađene funkcije

Video: Razlika između makronaredbe i ugrađene funkcije

Video: Razlika između makronaredbe i ugrađene funkcije
Video: PRIMENA MAGNETNE REZONANCE 2024, Studeni
Anonim

Ključna razlika – Makro nasuprot ugrađenoj funkciji

Makro je fragment koda, koji je direktiva pretprocesora. Ugrađena funkcija značajka je poboljšanja C++-a za smanjenje vremena izvođenja programa. Stoga je ključna razlika između makronaredbe i ugrađene funkcije u tome što makronaredbu provjerava predprocesor, dok ugrađenu funkciju provjerava kompajler.

Makronaredba je uključena na početku programa ispred koje stoji znak hash. Kada u programu postoji naziv makronaredbe, ono se zamjenjuje sadržajem makronaredbe.

Što je Makro?

Pretprocesor je program koji obrađuje izvorni kod prije nego što prođe kroz kompajler. Radi pomoću naredbenog retka pretprocesora ili direktiva. U programu su upute pretprocesora smještene u izvorni program prije glavnog programa. Prije nego što izvorni kod prođe kroz kompilator, pretprocesor ga provjerava za direktive pretprocesora. Direktive pretprocesora imaju simbol. Za razliku od drugih iskaza, oni ne završavaju točkom i zarezom. Jedna vrsta direktive pretprocesora je makro. Općenito, makronaredbe se pišu velikim slovima.

Razlika između makronaredbe i ugrađene funkcije
Razlika između makronaredbe i ugrađene funkcije

Slika 01: C++ program s makronaredbama

Prema gornjem programu, linija 3 i linija 4 označavaju makronaredbe. Prilikom izračuna površine, vrijednost PI zamjenjuje se definiranom makronaredbom. U retku 14, volume=CUBE(vrijednost), predprocesor proširuje iskaz kao volumen=(vrijednostvrijednostvrijednost). Pronalaženje kocke može se napisati kao funkcija, ali ovdje je zapisano pomoću makronaredbe. Ako postoji izjava kao volumen=KOCKA(x+y), tada će se proširiti na volumen=(x+yx+yx+y).

Neki programski tokeni lako se mogu pogrešno upisati. Mogu se zamijeniti pomoću makronaredbi. npr. definiraj I &&, definiraj ILI ||. Makro definicija također može uključivati izraze kao što je define AREA 45.56.

Što je Inline funkcija?

Kada se funkcija pozove, kompajleru treba neko vrijeme da je izvrši. Ako funkcija nije vrlo složena, programer je može pretvoriti u ugrađenu funkciju. Pogledajte donji program.

Razlika između makronaredbe i ugrađene funkcije_Slika 2
Razlika između makronaredbe i ugrađene funkcije_Slika 2

Slika 02: Funkcija bez Inline

print_hello je jednostavna funkcija. Ispisuje niz "Hello" kada se funkcija pozove. Vrijeme izvršenja te funkcije je 0,187 s. Kada koristite ugrađenu ključnu riječ kako slijedi, vrijeme izvršenja se smanjuje na 0,064 s.

Ključna razlika između makronaredbe i ugrađene funkcije
Ključna razlika između makronaredbe i ugrađene funkcije

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, switch naredbe i ako funkcija sadrži statičke varijable ili rekurzivne funkcije.

Koja je razlika između makronaredbe i ugrađene funkcije?

Makro nasuprot ugrađenoj funkciji

Makro je fragment koda, koji je direktiva pretprocesora koja je uključena na početku programa ispred kojega se nalazi hash. Ugrađena funkcija je C++ značajka poboljšanja za smanjenje vremena izvođenja programa.
Vrijeme evaluacije
U makronaredbi, argument se procjenjuje svaki put kada se koristi u programu. U inline-u, argument se procjenjuje jednom.
Provjerio
Makronaredbu 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. Ugrađena funkcija može se koristiti za smanjenje vremena izvođenja programa.
Raskid
Makro završava s novom linijom. Umetnuta funkcija završava vitičastom zagradom na kraju umetnute funkcije.
Definirajuća točka
Marco je definiran na početku programa. Inline funkcija može biti unutar ili izvan klase.

Sažetak – Makro nasuprot ugrađenoj funkciji

Ovaj članak govori o razlici između makronaredbe i ugrađene funkcije. Ovi koncepti se koriste u C++ programiranju. Razlika između makronaredbe i ugrađene funkcije je u tome što makronaredbu provjerava predprocesor, dok ugrađenu funkciju provjerava kompajler.

Preporučeni: