Makronaredba je ulomak koda, što je pretprocesorska direktiva. Ugrađena funkcija je značajka poboljšanja C ++ za smanjenje vremena izvršenja programa. Stoga je ključna razlika između Makro i Inline Funkcije je to predprocesor provjerava makronaredbu, dok kompajler provjerava inline funkciju.
Makronaredba je uključena na početku programa, a prethodio je hash znak. Kad u programu postoji naziv makronaredbe, zamjenjuje ga sadržaj makronaredbe.
1. Pregled i ključne razlike
2. Što je makro
3. Što je inline funkcija
4. Usporedba - Usporedba funkcije makronaredbenika prema liniji u tabelarnom obliku
5. Sažetak
Preprocesor je program koji obrađuje izvorni kod prije nego što prođe kroz prevoditelj. Radi pomoću naredbenog retka pretprocesora ili naredbi. U programu se pretprocesorske direktive postavljaju u izvorni program prije glavnog programa. Prije nego što izvorni kod prođe kroz kompajler, pretprocesor ga provjeri za smjernice pretprocesora. Smjernice pretprocesora imaju simbol #. Za razliku od drugih izjava, oni ne završavaju točkom sa zarezom. Jedna vrsta direktive za predprocesore je makronaredba. Makroi su općenito napisani velikim slovima.
Slika 01: Program C ++ s makronaredbama
Prema gornjem programu, redak 3 i redak 4 označavaju makronaredbe. Pri izračunavanju područja, vrijednost PI zamjenjuje se korištenjem definiranog makronaredbe. U retku 14, volumen = CUBE (vrijednost), predprocesor širi izraz kao volumen = (vrijednost * vrijednost * vrijednost). Pronalaženje kocke može se napisati kao funkcija, ali ovdje se piše pomoću makronaredbe. Ako postoji izjava kao volumen = CUBE (x + y), tada će se proširiti na volumen = (x + y * x + y * x + y).
Neki se tokeni za programiranje lako mogu pogrešno upisati. Mogu se zamijeniti pomoću makronaredbi. npr #define I &&, #define ILI ||. Makro definicija može također uključivati izraze kao što je #define AREA 4 * 5.56.
Kad se funkcija nazove, prevoditelju je potrebno neko vrijeme da ga izvrši. Ako funkcija nije jako složena, programer može pretvoriti funkciju u ugrađenu funkciju. Pogledajte donji program.
Slika 02: Funkcija bez umetnutih linija
Print_hello je jednostavna funkcija. Ispiše niz "Hello" kada se funkcija zove. Vrijeme izvršenja za tu funkciju je 0.187s. Kada koristite inline ključnu riječ na sljedeći način, vrijeme izvršenja smanjuje se na 0,064s.
Slika 03: Inline funkcija
Stoga se pomoću inline ključne riječi vrijeme izvršenja smanjuje. Ugrađene funkcije možda neće raditi ako postoje petlje, izjave o prebacivanju i ako funkcija sadrži statičke varijable ili rekurzivne funkcije.
Makro vs ugrađena funkcija | |
Makronaredba je ulomak koda, što je pretprocesorska direktiva koja je uključena na početku programa, a kojoj prethodi hash znak. | Ugrađena funkcija je značajka poboljšanja C ++ za smanjenje vremena izvršenja programa. |
Procjena vremena | |
U makronaredbi, argument se vrednuje svaki put kad se koristi u programu. | Inline, argument se vrednuje jednom. |
Provjereno od | |
Preprocesor provjerava makronaredbu. | Inline funkciju provjerava prevoditelj. |
Riječ | |
Marco koristi #define. | Inline funkcija koristi ključnu riječ "inline". |
upotreba | |
Makro se može koristiti za definiranje konstanti, izraza, za doslovno zamjenu teksta i za definiranje funkcija itd. | Inline funkcija može se koristiti za smanjenje vremena izvršenja programa. |
završetak | |
Makro završava s novom linijom. | Inline funkcija završava kovrčavom zagradom na kraju inline funkcije. |
Definirajuća točka | |
Marco je definiran na početku programa. | Inline funkcija može biti unutar klase ili izvan nje. |
Ovaj članak govori o razlici između makronaredbe i inline funkcije. Ti se koncepti koriste u programiranju C ++. Razlika između makronaredbe i inline funkcije je ta što makronaredbu provjerava pretprocesor, dok inline funkciju provjerava kompajler.
1. "Predprocesorske direktive." Cplusplus.com. Dostupno ovdje
2. "C inline funkcije." Www.tutorialspoint.com, Tutorials Point, 19. ožujka 2018. Dostupno ovdje