Inline i makro

Anonim

Inline vs Macro

C ++ je otišao previše daleko u području računalnog programiranja ovih dana. Budući da je moćan jezik, ponekad se malo zbunjuje programerima zbog svoje ogromne knjižnice funkcija. Inline funkcija je jedan od njih koji se lako može zbuniti s makronaredbama na jeziku. Nije da postoji manja razlika između njih, ali mogu biti pomalo zbunjujuća zbog svojstava koje drže. U ovom ćemo članku govoriti više o razlikama između inline funkcije i makronaredbi u C + +.

U redu Inline funkcija jednako je kao i svaka druga funkcija u C + + i također se naziva redovnim putem. Funkcija koju obavlja je da stvara kopiju sastavljene definicije funkcije. To jest, stvara kopiju definiranih stavki za sastavljanje. Primjer se može poduzeti ako dodamo bilo koji dva cjelobrojna broja i nazovemo onu liniju, prevodilac će stvoriti kopiju cijelih brojeva koje treba sastaviti. Primjer:

Inline int zbroj (int x, int y) { Povratak (x + y); }

makro Makronaredbe u C + + implementiraju zamjenu teksta u programskoj liniji. To znači da zamjenjuju tekst prema promjeni definiranoj u funkciji. Za razliku od inline kao funkcije, makronaredba manipulira kodom pomoću funkcije. Na primjer: #define DOUBLE (X) X * X

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

Ovdje ćemo dobiti vrijednost od 30! Budući da je poziv izvršen preko makro, "X" je zamijenjen s ++ y, što čini da se y y y umnožava s drugim y ++. To čini ukupno 5 * 6 koje su 30 ne 6. Šest bi bio osnovni, ali pogrešan odgovor.

Sada, makronaredbe mogu uzrokovati bug ovdje. Dakle, inline funkcija dolazi do spašavanja kopiranjem vrijednosti u memoriju prevodioca, a zatim ga sastavlja.

Sažetak:

1.Inline funkcija stvara kopiju definicije funkcije. 2. Makro makronaredbi zamjenjuje tekst koji je identificiran i definiran unutar funkcije. 3.Inline funkcija se također primjenjuje kada makronaredba uzrokuje grešku u programu.