Atšķirība starp iekļauto un makro

Iekļauts pret makro

Mūsdienās C ++ datorprogrammēšanas jomā ir gājis pārāk tālu. Tā kā tā ir spēcīga valoda, tā dažreiz nedaudz mulsina programmētājus, jo tai ir milzīga funkciju bibliotēka. Iekļautā funkcija ir viena no tām, kuru var viegli sajaukt ar valodas makro.
Nav tā, ka starp abām būtu neliela atšķirība, bet to īpašību dēļ tās var nedaudz mulsināt. Šajā rakstā mēs vairāk runāsim par atšķirībām starp inline funkciju un makro C++.

Rindā
Iekļautā funkcija ir gluži kā jebkura cita funkcija C ++, un tā tiek saukta arī parastajā veidā. Funkcija, ko tā veic, ir tāda, ka tā izveido apkopotās funkcijas definīcijas kopiju. Tas ir, tas izveido definējamo vienumu kopiju, kas jāapkopo. Var izmantot piemēru, ja mēs pievienojam kādus divus veselus skaitļus un saucam to par funkciju inline, kompilators izveidos apkopojamo veselo skaitļu kopijas.
Piemērs:

Iekļauta int summa (int x, int y)

Atgriešanās (x + y);

Makro
C ++ makro ievada teksta aizstāšanu programmas rindā. Tas ir, tie aizvieto tekstu atbilstoši funkcijā noteiktajām izmaiņām. Atšķirībā no inline kā funkcijas, makro manipulē ar kodu, izmantojot funkciju. Piemēram:
#definēt DVĪŅI (X) X * X

int y = 5;
int j = DVĪŅI (++ y);

Šeit mēs iegūsim vērtību 30! Tā kā izsaukums tika veikts, izmantojot makro, “X” ir aizstāts ar ++ y, kas ļauj ++ y reizināt ar citu ++ y. Tas kopā veido 5 * 6, kas ir 30, nevis 6. Seši būtu pamata, bet nepareiza atbilde.

Tagad makro, iespējams, šeit rada kļūdu. Tātad iekšējā funkcija nonāk glābšanā, nokopējot vērtības kompilatoru atmiņā un pēc tam to apkopojot.

Kopsavilkums:

1. Iekļautā funkcija izveido funkcijas definīcijas kopiju.
2. Makro aizstāj tekstu, kas identificēts un definēts funkcijas ietvaros.
3.Inline funkcija tiek piemērota arī tad, ja makro ir paredzēts izraisīt kļūdu programmā.