Inline vs Macro
C ++ je ovih dana predaleko otišao na polju računalnog programiranja. Budući da je moćan jezik, programeri se ponekad pomalo zbunjuju zbog velike knjižnice funkcija. Inline funkcija jedna je od njih koja se lako može zbuniti s makronaredbama na jeziku.
Nije da postoji manja razlika između njih dvojice, ali oni mogu biti pomalo zbunjujući zbog svojstava koja posjeduju. U ovom ćemo članku više raspravljati o razlikama između inline funkcije i makronaredbi u C-u++.
U redu
Inline funkcija je kao i svaka druga funkcija u C ++, a naziva se i na uobičajeni način. Funkcija koju obavlja je da stvara kopiju sastavljene definicije funkcije. Odnosno, stvara kopiju definiranih stavki koje treba sastaviti. Primjer se može uzeti ako dodamo bilo koja dva cijela broja i nazovemo ga inline funkcijom, prevoditelj će stvoriti kopiju cijelih brojeva koji će se sastaviti..
Primjer:
Inline zbroj int (int x, int y)
Povratak (x + y);
makro
Makronaredbe u jeziku C ++ implementiraju zamjenu teksta u programskoj liniji. Odnosno, zamjenjuju tekst prema promjeni definiranoj u funkciji. Za razliku od inline kao funkcije, makro manipulira kodom pomoću funkcije. Na primjer:
#define DOUBLE (X) X * X
int y = 5;
int j = DVOJE (++ y);
Evo, dobit ćemo vrijednost kao 30! Kako je poziv obavljen putem makronaredbe, "X" je zamijenjen sa ++ y što čini ++ y da se množi s drugim ++ y. To čini ukupno 5 * 6 što je 30, a ne šest. Šest bi bio osnovni, ali pogrešan odgovor.
Sada makronaredbe mogu uzrokovati bugu ovdje. Tako se u pomoć dolazi inline funkcija kopiranjem vrijednosti u memoriju prevoditelja i zatim njihovo kompiliranje.
Sažetak:
1.Ugrađena funkcija stvara kopiju definicije funkcije.
2.Makroa zamjenjuje tekst identificiran i definiran u funkciji.
3. Inline funkcija se također primjenjuje kada bi makronaredba trebala uzrokovati pogrešku u programu.