Verschil tussen inline en macro Verschil tussen

Anonim

Inline versus Macro

C ++ is tegenwoordig veel te ver gegaan op het gebied van computerprogrammering. Omdat het een krachtige taal is, wordt het soms een beetje verwarrend voor de programmeurs vanwege de enorme bibliotheek aan functies. Inline-functie is er een van die gemakkelijk kan worden verward met macro's in de taal.

Het is niet dat er een klein verschil is tussen de twee, maar ze kunnen een beetje verwarrend zijn vanwege de eigenschappen die ze hebben. In dit artikel bespreken we meer over de verschillen tussen inline-functie en macro's in C ++.

Inline

Een inline-functie is net als elke andere functie in C ++ en wordt ook op de normale manier genoemd. De functie die het uitvoert, is dat het een kopie van de gecompileerde functiedefinitie maakt. Dat wil zeggen, het maakt een kopie van de gedefinieerde items om te compileren. Een voorbeeld kan worden genomen als we twee gehele getallen toevoegen en dit de inline-functie noemen, maakt de compiler een kopie van de gehele getallen die moeten worden gecompileerd.

Voorbeeld:

Inline int sum (int x, int y)

{

Return (x + y);

}

Macro

Macro's in C ++ implementeren tekstvervanging in een programmalijn. Dat wil zeggen, ze vervangen tekst volgens de verandering die is gedefinieerd in de functie. Anders dan inline als een functie, manipuleert een macro de code met behulp van een functie. Bijvoorbeeld:

#define DOUBLE (X) X * X

int y = 5;

int j = DOUBLE (++ y);

Hier krijgen we de waarde als 30! Omdat het aanroepen is gedaan via een macro, is "X" vervangen door ++ y waardoor ++ y vermenigvuldigd wordt met een andere ++ y. Dit maakt een totaal van 5 * 6 dat is 30 niet 6. Zes zou het basis maar een verkeerd antwoord zijn.

Nu kunnen macro's hier een fout veroorzaken. Dus een inline-functie komt te hulp door de waarden naar het geheugen van de compilers te kopiëren en deze vervolgens te compileren.

Samenvatting:

1. Een inline-functie maakt een kopie van de functiedefinitie.

2. Een macro vervangt de tekst zoals geïdentificeerd en gedefinieerd binnen de functie.

3. Een inline-functie wordt ook toegepast wanneer een macro een fout in het programma zou moeten veroorzaken.