Verschil tussen macro- en inlinefunctie

Belangrijkste verschil - Macro vs Inline Functie
 

Een macro is een fragment van code, wat een preprocessor-richtlijn is. Een inline-functie is een C ++ -verbeteringsfunctie om de uitvoeringstijd van een programma te minimaliseren. Daarom, de belangrijk verschil tussen Macro en Inline-functie is dat een macro wordt gecontroleerd door de preprocessor, terwijl een inline-functie wordt gecontroleerd door de compiler.

Aan het begin van het programma wordt een macro toegevoegd, voorafgegaan door een hekje. Als de macronaam in het programma staat, wordt deze vervangen door de inhoud van de macro.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is Macro
3. Wat is Inline-functie
4. Vergelijking zij aan zij - Macro versus inlinefunctie in tabelvorm
5. Samenvatting

Wat is Macro?

De preprocessor is een programma dat de broncode verwerkt voordat deze door de compiler gaat. Het werkt met behulp van de preprocessor-opdrachtregel of de richtlijnen. In het programma worden de preprocessor-richtlijnen vóór het hoofdprogramma in het bronprogramma geplaatst. Voordat de broncode de compiler doorloopt, wordt deze door de preprocessor gecontroleerd op preprocessorrichtlijnen. De preprocessor-richtlijnen hebben het # -symbool. In tegenstelling tot andere verklaringen, eindigen ze niet met een puntkomma. Eén type preprocessor-richtlijn is macro. Over het algemeen worden de macro's in hoofdletters geschreven.

Figuur 01: C ++ -programma met macro's

Volgens het bovenstaande programma geven regel 3 en regel 4 macro's aan. Bij het berekenen van het gebied wordt de PI-waarde vervangen door de gedefinieerde macro. In regel 14, volume = CUBE (waarde), breidt de preprocessor de instructie uit als volume = (waarde * waarde * waarde). Het vinden van de kubus kan worden geschreven als een functie, maar hier wordt het geschreven met behulp van een macro. Als er een verklaring is als volume = CUBE (x + y), dan wordt het uitgebreid naar volume = (x + y * x + y * x + y).

Sommige programmeringstokens kunnen gemakkelijk verkeerd worden getypt. Ze kunnen worden vervangen met behulp van macro's. bijv. #define AND &&, #define OF ||. Een macrodefinitie kan ook uitdrukkingen bevatten zoals #define AREA 4 * 5.56.

Wat is Inline-functie?

Wanneer een functie wordt aangeroepen, heeft de compiler enige tijd nodig om deze uit te voeren. Als de functie niet erg complex is, kan de programmer de functie omzetten in een inline-functie. Raadpleeg het onderstaande programma.

Figuur 02: Functie zonder Inline

De print_hello is een eenvoudige functie. Het drukt de tekenreeks "Hallo" af wanneer de functie wordt aangeroepen. De uitvoeringstijd voor die functie is 0.187s. Als u het inline trefwoord als volgt gebruikt, neemt de uitvoeringstijd af tot 0.064s.

Figuur 03: Inline-functie

Daarom vermindert de uitvoeringstijd door het gebruik van het inline-trefwoord. De inline-functies werken mogelijk niet als er loops zijn, als er schakelinstructies zijn en als de functie statische variabelen of recursieve functies bevat.

Wat is het verschil tussen macro- en inlinefunctie?

Macro versus inline-functie

Een macro is een codefragment, wat een preprocessor-instructie is die aan het begin van het programma wordt toegevoegd, voorafgegaan door een hekje. Een inline-functie is een C ++ -verbeteringsfunctie om de uitvoeringstijd van een programma te minimaliseren.
Evaluation Time
In macro wordt het argument geëvalueerd elke keer dat het in het programma wordt gebruikt. Inline wordt het argument eenmaal geëvalueerd.
Gecontroleerd door
Een macro wordt gecontroleerd door de preprocessor. Een inline-functie wordt gecontroleerd door de compiler.
 keyword
Marco gebruikt #define. De inline-functie gebruikt het sleutelwoord 'inline'.
Gebruik
Macro kan worden gebruikt om constanten, uitdrukkingen, voor letterlijke tekstvervanging en voor het definiëren van functies enz. Te definiëren. Een inline-functie kan worden gebruikt om de uitvoeringstijd van het programma te minimaliseren.
Beëindiging
Macro wordt beëindigd met de nieuwe regel. Inline-functie eindigt met de accolade aan het einde van de inlinefunctie.
Definiërend punt
Een Marco wordt aan het begin van het programma gedefinieerd. Een inline-functie kan binnen of buiten de klas zijn.

Samenvatting - Macro vs Inline Functie

In dit artikel is het verschil tussen Macro en Inline-functie besproken. Deze concepten worden gebruikt in C ++ -programma's. Het verschil tussen Macro en Inline-functie is dat een macro wordt gecontroleerd door de preprocessor, terwijl een inline-functie wordt gecontroleerd door de compiler.

Referentie:

1. "Preprocessor-richtlijnen." Cplusplus.com. Beschikbaar Hier 
2. "C Inline Functions." Www.tutorialspoint.com, Tutorials Point, 19 maart 2018. Beschikbaar Hier