Forskellen mellem makro og inline-funktion

Nøgleforskel - Macro vs Inline Fungere
 

En makro er et fragment af kode, som er et forbehandlingsdirektiv. En inline-funktion er en C ++ -forbedringsfunktion for at minimere et programs eksekveringstid. Derfor vigtigste forskel mellem makro og inline funktion er det en makro kontrolleres af forbehandleren, mens en inline-funktion kontrolleres af compileren.

En makro er inkluderet i starten af ​​programmet forudgående med et hash-tegn. Når der er makronavnet i programmet, erstattes det af indholdet af makroen.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er makro
3. Hvad er Inline-funktion
4. Sammenligning side ved side - Makro vs inline-funktion i tabelform
5. Resume

Hvad er makro?

Forbehandleren 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 forbehandlingsdirektiverne i kildeprogrammet før hovedprogrammet. Før kildekoden går gennem kompilatoren, kontrolleres den af ​​forbehandleren for forarbejdningsdirektiver. Forarbejdningsdirektiverne har symbolet #. I modsætning til andre udsagn slutter de ikke med en semikolon. En type forbehandlingsdirektiv er makro. Generelt skrives makroerne med store bogstaver.

Figur 01: C ++ -program med makroer

I henhold til ovenstående program angiver linje 3 og linje 4 makroer. Ved beregning af området erstattes PI-værdien vha. Den definerede makro. I linje 14, lydstyrke = CUBE (værdi), udvider forbehandleren sætningen som volumen = (værdi * værdi * værdi). At finde terningen kan skrives som en funktion, men her er det skrevet ved hjælp af en makro. Hvis der er en erklæring som lydstyrke = CUBE (x + y), udvides den til volumen = (x + y * x + y * x + y).

Nogle programmeringstokener kan let indtastes forkert. De kan udskiftes ved hjælp af makroer. f.eks. #define AND &&, #define OR ||. En makrodefinition kan også omfatte udtryk som #definer AREA 4 * 5.56.

Hvad er Inline-funktion?

Når der kaldes en funktion, tager kompilatoren nogen tid at udføre den. Hvis funktionen ikke er meget kompleks, kan programmereren konvertere funktionen til en inline-funktion. Se nedenstående program.

Figur 02: Funktion uden inline

Print_hello er en enkel funktion. Det udskriver strengen "Hello", når funktionen kaldes. Udførelsestiden for denne funktion er 0.187 s. Når du bruger inline-nøgleordet som følger, reduceres eksekveringstiden til 0,064s.

Figur 03: Inline-funktion

Derfor bruger eksekveringstiden ved hjælp af det indbyggede nøgleord. Inline-funktionerne fungerer muligvis ikke, hvis der er sløjfer, switch-sætninger, og hvis funktionen indeholder statiske variabler 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 forarbejdningsdirektiv, der er inkluderet i starten af ​​programmet forud for et hash-tegn. En inline-funktion er en C ++ -forbedringsfunktion for at minimere et programs eksekveringstid.
Evaluering Time
I makro evalueres argumentet, hver gang det bruges i programmet. På linje evalueres argumentet én gang.
Kontrolleret af
En makro kontrolleres af forbehandleren. En inline-funktion kontrolleres af kompilatoren.
 Søgeord
Marco bruger #define. Inline-funktionen bruger nøgleordet 'inline'.
Anvendelse
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.
Afslutning
Makro afsluttes med den nye linje. Inline-funktion afsluttes med den krøllede stag i slutningen af ​​inline-funktionen.
Definitionspunkt
En Marco er defineret i starten af ​​programmet. En inline-funktion kan være i eller uden for klassen.

Resumé - Macro vs Inline Fungere

Denne artikel diskuterede forskellen mellem makro og inline-funktion. Disse koncepter bruges i C ++ programmering. Forskellen mellem makro- og inline-funktion er, at en makro kontrolleres af forbehandleren, mens en inline-funktion kontrolleres af kompilatoren.

Reference:

1. "Forbehandlingsdirektiver." Cplusplus.com. Tilgængelig her 
2. “C Inline-funktioner.” Www.tutorialspoint.com, Tutorials Point, 19. mar. 2018. Findes her