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.
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.
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.
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.