Forskellen mellem Inline og Macro

Inline vs makro

C ++ er gået for langt inden for computerprogrammering i disse dage. At være et magtfuldt sprog bliver det undertiden lidt forvirrende for programmererne på grund af det enorme bibliotek med funktioner. Inline-funktion er en af ​​dem, der let kan forveksles med makroer på sproget.
Det er ikke, at der er en mindre forskel mellem de to, men de kan være lidt forvirrende på grund af de egenskaber, de har. I denne artikel vil vi diskutere mere om forskellene mellem inline-funktion og makroer i C++.

Inline
En inline-funktion er ligesom enhver anden funktion i C ++ og kaldes også på den almindelige måde. Den funktion, den udfører, er, at den opretter en kopi af den kompilerede funktionsdefinition. Det vil sige, det opretter en kopi af de definerede elementer, der skal kompileres. Et eksempel kan tages, hvis vi tilføjer to heltal og kalder det inline-funktionen, kompilatoren opretter en kopi af de heltal, der skal kompileres.
Eksempel:

Inline int sum (int x, int y)

Retur (x + y);

Makro
Makroer i C ++ implementerer tekstudskiftning i en programlinje. Det vil sige, at de erstatter tekst i henhold til ændringen defineret i funktionen. I modsætning til inline som funktion manipulerer en makro koden ved hjælp af en funktion. For eksempel:
#definer DOBBELT (X) X * X

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

Her får vi værdien som 30! Da opkaldet er foretaget via en makro, er “X” erstattet med ++ y, der gør ++ y til at blive multipliceret med en anden ++ y. Dette gør i alt 5 * 6, der er 30 ikke 6. Seks ville være det grundlæggende, men et forkert svar.

Nu forårsager makroer muligvis en fejl her. Så en inline-funktion kommer til at redde ved at kopiere værdierne til kompilatorens hukommelse og derefter kompilere den.

Resumé:

1. En inline-funktion opretter en kopi af funktionsdefinitionen.
2. En makro erstatter teksten som identificeret og defineret i funktionen.
3. En inline-funktion anvendes også, når en makro formodes at forårsage en fejl i programmet.