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

Inline vs Macro

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

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

Inline int сума (int x, int y)

Връщане (x + y);

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

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

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

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

Резюме:

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