Forskjellen mellom makro og innebygd funksjon

Innholdsfortegnelse:

Forskjellen mellom makro og innebygd funksjon
Forskjellen mellom makro og innebygd funksjon

Video: Forskjellen mellom makro og innebygd funksjon

Video: Forskjellen mellom makro og innebygd funksjon
Video: Økonomisk aktivitet i en åpen økonomi del 4 IS-RR-PK modellen med flytende kurs og inflasjonsmål 2024, November
Anonim

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.

Forskjellen mellom makro og innebygd funksjon
Forskjellen mellom makro og innebygd funksjon

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.

Forskjellen mellom makro og innebygd funksjon_Figur 2
Forskjellen mellom makro og innebygd funksjon_Figur 2

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.

Nøkkelforskjell mellom makro og innebygd funksjon
Nøkkelforskjell mellom makro og innebygd funksjon

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.

Anbefalt: