Forskellen mellem makro- og inline-funktion

Indholdsfortegnelse:

Forskellen mellem makro- og inline-funktion
Forskellen mellem makro- og inline-funktion

Video: Forskellen mellem makro- og inline-funktion

Video: Forskellen mellem makro- og inline-funktion
Video: Супер макро: урок 3, макрофильтры 2024, Juli
Anonim

Nøgleforskel – Makro vs Inline-funktion

En makro er et fragment af kode, som er et præprocessor-direktiv. En inline-funktion er en C++-forbedringsfunktion for at minimere udførelsestiden for et program. Derfor er den vigtigste forskel mellem makro og inline funktion, at en makro kontrolleres af præprocessoren, mens en inline funktion kontrolleres af compileren.

Der er en makro inkluderet i begyndelsen af programmet efter et hash-tegn. Når der er makronavnet i programmet, erstattes det af indholdet af makroen.

Hvad er makro?

Forprocessoren er et program, der behandler kildekoden, før den passerer gennem compileren. Det fungerer ved hjælp af preprocessor-kommandolinjen eller direktiverne. I programmet placeres præprocessor-direktiverne i kildeprogrammet før hovedprogrammet. Før kildekoden går gennem compileren, kontrolleres den af præprocessoren for præprocessor-direktiver. Preprocessor-direktiverne har -symbolet. I modsætning til andre udsagn ender de ikke med et semikolon. En type præprocessor-direktiv er makro. Generelt er makroerne skrevet med store bogstaver.

Forskellen mellem makro og inline funktion
Forskellen mellem makro og inline funktion

Figur 01: C++-program med makroer

I henhold til ovenstående program angiver linje 3 og linje 4 makroer. Ved beregning af arealet erstattes PI-værdien ved hjælp af den definerede makro. I linje 14, volume=CUBE(værdi), udvider præprocessoren sætningen som volumen=(værdiværdiværdi). At finde kuben kan skrives som en funktion, men herinde skrives det ved hjælp af en makro. Hvis der er en sætning som volumen=TERNING(x+y), så udvides den til volumen=(x+yx+yx+y).

Nogle programmeringstokens kan let være skrevet forkert. De kan erstattes ved hjælp af makroer. for eksempel. define OG &&, define ELLER ||. En makrodefinition kan også indeholde udtryk såsom define AREA 45.56.

Hvad er inline-funktion?

Når en funktion kaldes, tager compileren noget tid at udføre den. Hvis funktionen ikke er særlig kompleks, kan programmøren konvertere funktionen til en inline-funktion. Se nedenstående program.

Forskellen mellem makro og inline funktion_Figur 2
Forskellen mellem makro og inline funktion_Figur 2

Figur 02: Funktion uden Inline

print_hello er en simpel funktion. Den udskriver strengen "Hej", når funktionen kaldes. Udførelsestiden for denne funktion er 0,187s. Når du bruger det inline-nøgleord som følger, reduceres udførelsestiden til 0,064 s.

Nøgleforskel mellem makro og inline funktion
Nøgleforskel mellem makro og inline funktion

Figur 03: Inline-funktion

Derfor reduceres eksekveringstiden ved at bruge det inline-søgeord. De inline-funktioner virker muligvis ikke, hvis der er loops, switch-sætninger, og hvis funktionen indeholder statiske variable eller rekursive funktioner.

Hvad er forskellen mellem makro- og inline-funktion?

Makro vs Inline-funktion

En makro er et fragment af kode, som er et præprocessor-direktiv, der er inkluderet i begyndelsen af programmet efterfulgt af et hash-tegn. En inline-funktion er en C++-forbedringsfunktion for at minimere udførelsestiden for et program.
Evalueringstid
I makro evalueres argumentet hver gang det bruges i programmet. I inline evalueres argumentet én gang.
Tjekket af
En makro kontrolleres af forprocessoren. En inline-funktion kontrolleres af compileren.
Søgeord
Marco bruger define. Den inline-funktion bruger søgeordet 'inline'.
Usage
Makro kan bruges til at definere konstanter, udtryk, til bogstavelig tekstsubstitution og til at definere funktioner osv. En inline-funktion kan bruges til at minimere programmets udførelsestid.
Opsigelse
Makro afsluttes med den nye linje. Inline-funktionen afsluttes med den krøllede bøjle i slutningen af den inline-funktion.
Definition Point
En Marco er defineret i begyndelsen af programmet. En indlejret funktion kan være i eller uden for klassen.

Opsummering – Makro vs Inline-funktion

Denne artikel diskuterede forskellen mellem makro- og inline-funktion. Disse begreber bruges i C++ programmering. Forskellen mellem makro og inline funktion er, at en makro kontrolleres af præprocessoren, mens en inline funktion kontrolleres af compileren.

Anbefalede: