Forskjellen mellom inline og makro

Inline vs Makro

C ++ har gått altfor langt innenfor dataprogrammering i disse dager. Å være et kraftig språk, blir det noen ganger litt forvirrende for programmererne på grunn av det store biblioteket med funksjoner. Inline-funksjon er en av dem som lett kan forveksles med makroer på språket.
Det er ikke at det er en liten forskjell mellom de to, men de kan være litt forvirrende på grunn av egenskapene de holder. I denne artikkelen vil vi diskutere mer om forskjellene mellom inline-funksjon og makroer i C++.

På linje
En inline-funksjon er akkurat som hvilken som helst annen funksjon i C ++ og kalles også på vanlig måte. Funksjonen den utfører, er at den lager en kopi av den sammensatte funksjonsdefinisjonen. Det vil si at den lager en kopi av de definerte elementene for å kompilere. Et eksempel kan tas hvis vi legger til to to heltall og kaller det inline-funksjonen, kompilatoren vil lage en kopi av heltallene som skal kompileres.
Eksempel:

Inline int sum (int x, int y)

Retur (x + y);

Makro
Makroer i C ++ implementere tekstutskifting i en programlinje. Det vil si at de erstatter tekst i henhold til endringen definert i funksjonen. I motsetning til inline som en funksjon manipulerer en makro koden ved hjelp av en funksjon. For eksempel:
#define DOBBEL (X) X * X

int y = 5;
int j = DOUBLE (++ y);

Her får vi verdien som 30! Etter hvert som anropet er gjort via en makro, er "X" erstattet med ++ y, som gjør at + y til å bli multiplisert med en annen ++ y. Dette gir totalt 5 * 6 som er 30 ikke 6. Seks ville være det grunnleggende, men et feil svar.

Nå kan makroer forårsake en feil her. Så en inline-funksjon kommer til redning ved å kopiere verdiene til kompilatørens minne og deretter kompilere det.

Sammendrag:

1. En inline-funksjon lager en kopi av funksjonsdefinisjonen.
2. En makro erstatter teksten som identifisert og definert i funksjonen.
3. En inline-funksjon brukes også når en makro skal forårsake en feil i programmet.