Dallimi kryesor – Funksioni makro vs inline
Një makro është një fragment kodi, i cili është një direktivë paraprocesori. Një funksion inline është një veçori e përmirësimit të C++ për të minimizuar kohën e ekzekutimit të një programi. Prandaj, ndryshimi kryesor midis Funksionit Macro dhe Inline është se një makro kontrollohet nga paraprocesori ndërsa një funksion inline kontrollohet nga përpiluesi.
Një makro përfshihet në fillim të programit të paraprirë nga një shenjë hash. Kur ekziston emri i makros në program, ai zëvendësohet nga përmbajtja e makros.
Çfarë është makro?
Paraprocesori është një program që përpunon kodin burimor përpara se ai të kalojë përmes përpiluesit. Ai funksionon duke përdorur linjën e komandës së paraprocesorit ose direktivat. Në program, direktivat e paraprocesorit vendosen në programin burimor përpara programit kryesor. Përpara se kodi burim të kalojë përmes përpiluesit, ai kontrollohet nga paraprocesori për direktivat e paraprocesorit. Direktivat e paraprocesorit kanë simbolin. Ndryshe nga pohimet e tjera, ato nuk mbarojnë me pikëpresje. Një lloj i direktivës së paraprocesorit është makro. Në përgjithësi, makrot shkruhen me shkronja të mëdha.
Figura 01: Programi C++ me makro
Sipas programit të mësipërm, rreshti 3 dhe rreshti 4 tregojnë makro. Gjatë llogaritjes së zonës, vlera PI zëvendësohet duke përdorur makro të përcaktuar. Në rreshtin 14, volume=CUBE(value), paraprocesori zgjeron deklaratën si volume=(vleravleravlera). Gjetja e kubit mund të shkruhet si funksion, por këtu shkruhet duke përdorur një makro. Nëse ka një deklaratë si vëllim=CUBE (x+y), atëherë ai do të zgjerohet në vëllim=(x+yx+yx+y).
Disa kode programimi mund të shtypen lehtësisht gabim. Ato mund të zëvendësohen duke përdorur makro. p.sh. define AND &&, define OR ||. Një përkufizim makro mund të përfshijë gjithashtu shprehje të tilla si define AREA 45.56.
Çfarë është Funksioni Inline?
Kur thirret një funksion, përpiluesit i duhet pak kohë për ta ekzekutuar atë. Nëse funksioni nuk është shumë kompleks, programuesi mund ta konvertojë funksionin në një funksion inline. Referojuni programit të mëposhtëm.
Figura 02: Funksioni pa Inline
Printa_përshëndetje është një funksion i thjeshtë. Ai printon vargun "Hello" kur thirret funksioni. Koha e ekzekutimit për atë funksion është 0,187 s. Kur përdorni fjalën kyçe inline si më poshtë, koha e ekzekutimit zvogëlohet në 0,064 s.
Figura 03: Funksioni në linjë
Prandaj, duke përdorur fjalën kyçe inline, koha e ekzekutimit zvogëlohet. Funksionet inline mund të mos funksionojnë nëse ka unaza, deklarata switch dhe nëse funksioni përmban variabla statike ose funksione rekurzive.
Cili është ndryshimi midis funksionit makro dhe atij inline?
Makro vs Funksioni Inline |
|
Një makro është një fragment kodi, i cili është një direktivë paraprocesori që përfshihet në fillim të programit të paraprirë nga një shenjë hash. | Një funksion inline është një veçori e përmirësimit të C++ për të minimizuar kohën e ekzekutimit të një programi. |
Koha e Vlerësimit | |
Në makro, argumenti vlerësohet sa herë që përdoret në program. | Në linjë, argumenti vlerësohet një herë. |
Kontrolluar nga | |
Një makro kontrollohet nga paraprocesori. | Një funksion inline kontrollohet nga përpiluesi. |
Fjalë kyçe | |
Marco përdor define. | Funksioni inline përdor fjalën kyçe 'inline'. |
Përdorimi | |
Makro mund të përdoret për të përcaktuar konstante, shprehje, për zëvendësimin e tekstit të mirëfilltë dhe për të përcaktuar funksionet etj. | Një funksion inline mund të përdoret për të minimizuar kohën e ekzekutimit të programit. |
Përfundimi | |
Makro përfundon me linjën e re. | Funksioni inline përfundon me mbajtësin kaçurrelë në fund të funksionit inline. |
Pika Përcaktuese | |
Një Marco përcaktohet në fillim të programit. | Një funksion inline mund të jetë brenda ose jashtë klasës. |
Përmbledhje – Makro vs Funksioni Inline
Ky artikull diskutoi ndryshimin midis Funksionit Macro dhe Inline. Këto koncepte përdoren në programimin C++. Dallimi midis funksionit Macro dhe Inline është se një makro kontrollohet nga paraprocesori ndërsa një funksion inline kontrollohet nga përpiluesi.