Forskel mellem inline og makro Forskellen mellem

Anonim

Inline vs Macro

C ++ er gået alt for langt inden for computerprogrammering i disse dage. At være et stærkt sprog bliver det nogle gange forvirrende for programmørerne på grund af dets enorme bibliotek af 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 holder. 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. Funktionen den udfører er, at den skaber en kopi af den sammensatte funktionsdefinition. Det vil sige, det skaber en kopi af de definerede elementer til kompilering. Et eksempel kan tages, hvis vi tilføjer to heltal og kalder det inline-funktionen, kompilatoren vil oprette en kopi af de heltal, der skal kompileres.

Eksempel:

Inline int sum (int x, int y)

{

Retur (x + y);

}

Makro

Makroer i C ++ implementere tekstudskiftning i en programlinje. Det vil sige, at de erstatter tekst i henhold til den ændring, der er defineret i funktionen. I modsætning til inline som en funktion manipulerer en makro koden ved hjælp af en funktion. For eksempel:

#define DOUBLE (X) X * X

int y = 5;

int j = DOUBLE (++ y);

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

Nu kan macer forårsage en fejl her. Så en inline-funktion kommer til undsætning ved at kopiere værdierne til kompilatorens hukommelse og derefter kompilere den.

Sammendrag:

1. En inline-funktion skaber 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.