Ključna razlika - Makronaredba s ugrađenom funkcijom
Makronaredba je fragment koda, koji je pretprocesorska direktiva. Ugrađena funkcija je značajka poboljšanja C ++ za smanjenje vremena izvršavanja programa. Stoga je ključna razlika između makronaredbe i ugrađene funkcije u tome što makronaredbu provjerava pretprocesor, dok ugrađenu funkciju provjerava prevodilac.
Makronaredba je uključena na početak programa kojem prethodi znak za raspršivanje. Kada u programu postoji naziv makronaredbe, ono se zamjenjuje sadržajem makronaredbe.
SADRŽAJ
1. Pregled i ključna razlika
2. Što je makronaredba
3. Što je ugrađena funkcija
4. Usporedna usporedba - Makronaredba s ugrađenom funkcijom u tabličnom obliku
5. Sažetak
Što je makro?
Pretprocesor je program koji obrađuje izvorni kod prije nego što prođe kroz kompajler. Djeluje pomoću naredbenog retka pretprocesora ili direktiva. U programu se direktive pretprocesora postavljaju u izvorni program prije glavnog programa. Prije nego što izvorni kôd prođe kroz kompajler, pretprocesor ga provjerava radi preduvjeta pretprocesora. Direktive pretprocesora imaju simbol #. Za razliku od ostalih izjava, oni ne završavaju točkom i zarezom. Jedna vrsta direktive pretprocesora je makro. Makronaredbe su uglavnom napisane velikim slovima.
Slika 01: Program C ++ s makronaredbama
Prema gornjem programu, redak 3 i redak 4 označavaju makronaredbe. Pri izračunavanju površine, vrijednost PI zamjenjuje se pomoću definirane makronaredbe. U retku 14, volumen = CUBE (vrijednost), pretprocesor proširuje izraz kao volume = (vrijednost * vrijednost * vrijednost). Pronalaženje kocke može se napisati kao funkcija, ali ovdje je zapisano pomoću makronaredbe. Ako postoji izjava kao volume = CUBE (x + y), tada će se proširiti na volume = (x + y * x + y * x + y).
Neki programski tokeni mogu se lako pogrešno upisati. Mogu se zamijeniti pomoću makronaredbi. npr. #define AND &&, #define OR ||. Makro definicija također može sadržavati izraze poput #define AREA 4 * 5.56.
Što je ugrađena funkcija?
Kad se funkcija pozove, prevoditelju treba neko vrijeme da je izvrši. Ako funkcija nije vrlo složena, programer može pretvoriti funkciju u ugrađenu funkciju. Pogledajte donji program.
Slika 02: Funkcija bez ugrađenog
Print_hello je jednostavna funkcija. Ispisuje niz "Hello" kada je funkcija pozvana. Vrijeme izvršavanja te funkcije je 0,187s. Kada koristite ugrađenu ključnu riječ na sljedeći način, vrijeme izvršavanja smanjuje se na 0,064s.
Slika 03: Inline funkcija
Stoga se upotrebom ključne riječi inline smanjuje vrijeme izvršenja. Ugrađene funkcije možda neće raditi ako postoje petlje, naredbe prekidača i ako funkcija sadrži statičke varijable ili rekurzivne funkcije.
Koja je razlika između makronaredbe i ugrađene funkcije?
Diff Article Sredina prije tablice
Makronaredba s ugrađenom funkcijom |
|
Makronaredba je fragment koda, koji je pretprocesorska direktiva koja je uključena na početku programa, a prethodi mu znak za raspršivanje. | Ugrađena funkcija je značajka poboljšanja C ++ za smanjenje vremena izvršavanja programa. |
Vrijeme procjene | |
U makronaredbi, argument se procjenjuje svaki put kad se koristi u programu. | Inline, argument se procjenjuje jednom. |
Provjereno od | |
Makronaredbu provjerava pretprocesor. | Ugrađenu funkciju provjerava prevodilac. |
Ključna riječ | |
Marco koristi #define. | Inline funkcija koristi ključnu riječ 'inline'. |
Upotreba | |
Makronaredba 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 smanjivanje vremena izvršavanja programa. |
Raskid | |
Makro se završava novom linijom. | Inline funkcija završava kovrčavom zagradom na kraju inline funkcije. |
Definicijska točka | |
Marko je definiran na početku programa. | Ugrađena funkcija može biti unutar ili izvan klase. |
Sažetak - Makronaredba s ugrađenom funkcijom
Ovaj je članak raspravljao o razlici između makronaredbe i ugrađene funkcije. Ti se koncepti koriste u programiranju na C ++. Razlika između makronaredbe i ugrađene funkcije je u tome što makronaredbu provjerava pretprocesor, dok ugrađenu funkciju provjerava prevodilac.