Разлика между Inline и Macro

Вградено срещу макро

C ++ стигна твърде далеч в областта на компютърното програмиране в наши дни. Като мощен език, понякога става малко объркващо за програмистите поради огромната си библиотека от функции. Вградената функция е една от тях, която лесно може да бъде объркана с макроси в езика.
Не че има малка разлика между двете, но те могат да бъдат малко объркващи поради свойствата, които притежават. В тази статия ще обсъдим повече за разликите между вградената функция и макросите в C ++.

В редица
Вградената функция е точно като всяка друга функция в C ++ и също се извиква по обичайния начин. Функцията, която изпълнява, е, че създава копие на дефиницията на компилираната функция. Тоест създава копие на дефинираните елементи за компилиране. Може да се вземе пример, ако добавяме произволни две цели числа и го наричаме вградена функция, компилаторът ще създаде копие на целите числа, които трябва да бъдат компилирани.
Пример:



Вградена int сума (int x, int y)
{
Връщане (x + y);
}

Макро
Макросите в C ++ изпълняват замяна на текст в програмен ред. Тоест те заместват текста според промяната, дефинирана във функцията. За разлика от вградената като функция, макросът манипулира кода с помощта на функция. Например:
#define DOUBLE (X) X * X

int y = 5;
int j = ДВОЙНО (++ y);

Тук ще получим стойността като 30! Тъй като извикването е извършено чрез макрос, “X” е заменен с ++ y, което прави ++ y да бъде умножено по друг ++ y. Това прави общо 5 * 6, което е 30, а не 6. Шест биха били основният, но грешен отговор.

Сега макросите може да причиняват грешка тук. Така че вградената функция идва на помощ, като копира стойностите в паметта на компилаторите и след това я компилира.

Резюме:

1. Вградената функция създава копие на дефиницията на функцията.
2. Макрос замества текста, както е идентифициран и дефиниран във функцията.
3. Вградена функция също се прилага, когато макрос трябва да причини грешка в програмата.