Nøkkelforskjell – Makro vs Inline-funksjon
En makro er et fragment av kode, som er et forprosessordirektiv. En innebygd funksjon er en C++-forbedringsfunksjon for å minimere utførelsestiden til et program. Derfor er hovedforskjellen mellom makro og innebygd funksjon at en makro kontrolleres av forprosessoren mens en innebygd funksjon sjekkes av kompilatoren.
En makro er inkludert i begynnelsen av programmet med et hash-tegn foran. Når det er makronavnet i programmet, erstattes det av innholdet i makroen.
Hva er makro?
Forprosessoren er et program som behandler kildekoden før den går gjennom kompilatoren. Den opererer ved å bruke preprocessor-kommandolinjen eller direktivene. I programmet plasseres forbehandlerdirektivene i kildeprogrammet før hovedprogrammet. Før kildekoden går gjennom kompilatoren, sjekkes den av forprosessoren for preprosessordirektiver. Forbehandlerdirektivene har -symbolet. I motsetning til andre utsagn, slutter de ikke med semikolon. En type forprosessordirektiv er makro. Vanligvis skrives makroene med store bokstaver.
Figur 01: C++-program med makroer
I følge programmet ovenfor indikerer linje 3 og linje 4 makroer. Ved beregning av arealet erstattes PI-verdien med den definerte makroen. I linje 14, volum=CUBE(verdi), utvider forprosessoren setningen som volum=(verdiverdiverdi). Å finne kuben kan skrives som en funksjon, men her skrives den ved hjelp av en makro. Hvis det er en setning som volum=CUBE(x+y), vil den utvides til volum=(x+yx+yx+y).
Noen programmeringssymboler kan lett skrives feil. De kan erstattes ved hjelp av makroer. f.eks. define OG &&, define ELLER ||. En makrodefinisjon kan også inneholde uttrykk som define AREA 45.56.
Hva er innebygd funksjon?
Når en funksjon kalles, bruker kompilatoren litt tid på å utføre den. Hvis funksjonen ikke er veldig kompleks, kan programmereren konvertere funksjonen til en innebygd funksjon. Se programmet nedenfor.
Figur 02: Funksjon uten inline
print_hello er en enkel funksjon. Den skriver ut strengen "Hello" når funksjonen kalles. Utførelsestiden for denne funksjonen er 0,187s. Når du bruker det innebygde nøkkelordet som følger, reduseres utførelsestiden til 0,064 s.
Figur 03: Inline-funksjon
Derfor, ved å bruke det innebygde nøkkelordet, reduseres utførelsestiden. Det kan hende at de innebygde funksjonene ikke fungerer hvis det er løkker, switch-setninger og hvis funksjonen inneholder statiske variabler eller rekursive funksjoner.
Hva er forskjellen mellom makro og innebygd funksjon?
Makro vs Inline-funksjon |
|
En makro er et fragment av kode, som er et forprosessordirektiv som er inkludert i begynnelsen av programmet med et hash-tegn foran. | En innebygd funksjon er en C++-forbedringsfunksjon for å minimere utførelsestiden til et program. |
Evalueringstid | |
I makro blir argumentet evaluert hver gang det brukes i programmet. | I inline blir argumentet evaluert én gang. |
Sjekket av | |
En makro kontrolleres av forprosessoren. | En innebygd funksjon kontrolleres av kompilatoren. |
søkeord | |
Marco bruker define. | Den innebygde funksjonen bruker søkeordet «inline». |
Usage | |
Makro kan brukes til å definere konstanter, uttrykk, for bokstavelig teksterstatning og til å definere funksjoner osv. | En innebygd funksjon kan brukes for å minimere utførelsestiden for programmet. |
Opsigelse | |
Makro avsluttes med den nye linjen. | Inline-funksjonen avsluttes med den krøllete klammeparentesen på slutten av den innebygde funksjonen. |
Definisjonspunkt | |
En Marco er definert i begynnelsen av programmet. | En innebygd funksjon kan være innenfor eller utenfor klassen. |
Sammendrag – Makro vs Inline-funksjon
Denne artikkelen diskuterte forskjellen mellom makro og innebygd funksjon. Disse konseptene brukes i C++ programmering. Forskjellen mellom makro og innebygd funksjon er at en makro sjekkes av forprosessoren mens en innebygd funksjon sjekkes av kompilatoren.