Verschil tussen macro en inline-functie

Inhoudsopgave:

Verschil tussen macro en inline-functie
Verschil tussen macro en inline-functie

Video: Verschil tussen macro en inline-functie

Video: Verschil tussen macro en inline-functie
Video: Het verschil tussen Leiders en Managers 2024, Juli-
Anonim

Belangrijk verschil - Macro versus inline-functie

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

Een macro is opgenomen aan het begin van het programma, voorafgegaan door een hekje. Als er een macronaam in het programma staat, wordt deze vervangen door de inhoud van de macro.

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 in het bronprogramma vóór het hoofdprogramma geplaatst. Voordat de broncode door de compiler gaat, wordt deze door de preprocessor gecontroleerd op preprocessor-richtlijnen. De preprocessor-richtlijnen hebben het -symbool. In tegenstelling tot andere uitspraken eindigen ze niet met een puntkomma. Een type preprocessor-richtlijn is macro. Over het algemeen worden de macro's in hoofdletters geschreven.

Verschil tussen macro- en inline-functie
Verschil tussen macro- en inline-functie

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

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

Sommige programmeertokens kunnen gemakkelijk verkeerd worden getypt. Ze kunnen worden vervangen met behulp van macro's. bijv. define AND &&, define OR ||. Een macrodefinitie kan ook uitdrukkingen bevatten zoals define AREA 45.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 programmeur de functie omzetten naar een inline-functie. Raadpleeg het onderstaande programma.

Verschil tussen macro en inline-functie_Figuur 2
Verschil tussen macro en inline-functie_Figuur 2

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 het inline-trefwoord als volgt wordt gebruikt, wordt de uitvoeringstijd teruggebracht tot 0,064s.

Belangrijkste verschil tussen macro- en inline-functie
Belangrijkste verschil tussen macro- en inline-functie

Figuur 03: Inline-functie

Daarom wordt de uitvoeringstijd verkort door het inline-trefwoord te gebruiken. De inline-functies werken mogelijk niet als er lussen zijn, schakelinstructies en als de functie statische variabelen of recursieve functies bevat.

Wat is het verschil tussen macro en inline-functie?

Macro versus inline-functie

Een macro is een codefragment, een preprocessor-richtlijn 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.
Evaluatietijd
In macro wordt het argument geëvalueerd elke keer dat het in het programma wordt gebruikt. In inline wordt het argument één keer geëvalueerd.
Gecontroleerd door
Een macro wordt gecontroleerd door de preprocessor. Een inline-functie wordt gecontroleerd door de compiler.
Trefwoord
Marco gebruikt define. De inline-functie gebruikt het trefwoord 'inline'.
Gebruik
Macro kan worden gebruikt om constanten, uitdrukkingen te definiëren, voor letterlijke tekstvervanging en om functies te definiëren, enz. Een inline-functie kan worden gebruikt om de uitvoeringstijd van het programma te minimaliseren.
Beëindiging
Macro eindigt met de nieuwe regel. Inline-functie eindigt met de accolade aan het einde van de inline-functie.
Definiëren van punt
Een Marco wordt gedefinieerd aan het begin van het programma. Een inline-functie kan binnen of buiten de klas zijn.

Samenvatting – Macro versus inline-functie

Dit artikel besprak het verschil tussen Macro en Inline Function. Deze concepten worden gebruikt in C++-programmering. 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.

Aanbevolen: