Diferența dintre Inline și Macro Diferența dintre

Anonim

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 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 ++.

Inline

O funcție inline este la fel ca orice altă funcție din C ++ și este chemată și î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:

- <->

Suma inline int (int x, int y)

{

Întoarcere (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. O funcție inline creează o copie a definiției funcției.

2. O macrocomandă înlocuiește textul identificat și definit în cadrul funcției.

3. O funcție inline se aplică și atunci când se presupune că o macrocomandă provoacă o eroare în program.