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: [BloterTV] HTC Raider 4G vs. Motorola RAZR 2024, December
Anonim

Belangrijkste verschil - Macro versus inline-functie

Een macro is een codefragment dat een preprocessorrichtlijn 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.

Aan het begin van het programma wordt een macro toegevoegd, voorafgegaan door een hekje. Als er 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 inline-functie 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-instructies vóór het hoofdprogramma in het bronprogramma geplaatst. Voordat de broncode door de compiler gaat, wordt deze door de preprocessor gecontroleerd op preprocessorrichtlijnen. De preprocessorrichtlijnen hebben het # -symbool. In tegenstelling tot andere uitspraken eindigen ze niet met een puntkomma. Een type preprocessor-instructie 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 = (waarde * waarde * waarde). Het vinden van de kubus kan als een functie worden geschreven, maar hier wordt het met een macro geschreven. Als er een statement is als volume = CUBE (x + y), dan zal het uitbreiden naar volume = (x + y * x + y * x + 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 4 * 5.56.

Wat is de 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 Figure 2
Verschil tussen macro en inline functie Figure 2

Figuur 02: Functie zonder inline

De print_hello is een eenvoudige functie. Het drukt de string "Hallo" af wanneer de functie wordt aangeroepen. De uitvoeringstijd voor die functie is 0,187 sec. Wanneer u het inline-sleutelwoord als volgt gebruikt, wordt de uitvoeringstijd gereduceerd tot 0,064 seconden.

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-sleutelwoord te gebruiken. De inline-functies werken mogelijk niet als er lussen zijn, switch-instructies en als de functie statische variabelen of recursieve functies bevat.

Wat is het verschil tussen macro- en inline-functie?

Diff Artikel Midden voor Tafel

Macro versus inline-functie

Een macro is een codefragment. Dit is een preprocessorrichtlijn 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 elke keer geëvalueerd als 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 enz. Te definiëren. 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.
Punt definiëren
Aan het begin van het programma wordt een Marco gedefinieerd. Een inline-functie kan zich binnen of buiten de klas bevinden.

Samenvatting - Macro versus inline-functie

In dit artikel is het verschil tussen macro- en inline-functie besproken. 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: