Diferența dintre Inline și Macro

Inline vs. Macro

C ++ a trecut mult prea departe în domeniul programării pe calculator în aceste zile. Fiind un limbaj puternic, uneori devine puțin confuză pentru programatori datorită bibliotecii sale uriașe de funcții. Funcția inline este una dintre ele care poate fi ușor confundată cu macro-urile în limba respectivă.
Nu este că există o mică diferență între cele două, dar pot fi puțin confuze din cauza proprietăților pe care le dețin. În acest articol, vom discuta mai multe despre diferențele dintre funcția inline și macrocomenzile din C++.

In linie
O funcție inline este la fel ca orice altă funcție din C ++ și este de asemenea apelată în mod obișnuit. Funcția pe care o efectuează este că creează o copie a definiției funcției compilate. Adică, creează o copie a elementelor definite pentru a fi compilate. Un exemplu poate fi luat dacă adăugăm oricare două numere întregi și îl numim funcția inline, compilatorul va crea o copie a întregilor care urmează a fi compilați.
Exemplu:

Sumă intră intră (int x, int y)

Retur (x + y);

Macro
Macrogramele din C ++ implementează înlocuirea textului într-o linie de program. Adică înlocuiesc textul în funcție de schimbarea definită în funcție. Spre deosebire de funcția inline, o macrocomandă manipulează codul folosind o funcție. De exemplu:
#define DOUBLE (X) X * X

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

Aici, vom obține valoarea de 30! Deoarece chemarea a fost făcută printr-o macrocomandă, "X" a fost înlocuită cu ++ y, ceea ce face ca ++ y să fie înmulțită cu un alt ++ y. Acest lucru face ca un total de 5 * 6 să fie 30, nu 6. Șase ar fi răspunsul de bază, dar un răspuns greșit.

Acum, macro-urile ar putea cauza un bug aici. Deci, o funcție inline vine la salvare prin copierea valorilor în memoria compilatorilor și apoi compilarea acestora.

Rezumat:

1. Funcția inline creează o copie a definiției funcției.
2.O macro înlocuiește textul identificat și definit în cadrul funcției.
3. O funcție inline se aplică, de asemenea, atunci când se presupune că o macrocomandă provoacă o eroare în program.