Разлика между макро и вградена функция

Ключова разлика - Ма° Сro срещу Inline функция
 

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

Макрос е включен в началото на програмата, предшестван от хеш знак. Когато в програмата има име на макрос, то се заменя със съдържанието на макроса.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е макро
3. Какво е вградена функция
4. Паралелно сравнение - Макро срещу вградена функция в таблична форма
5. Резюме

Какво е макрос?

Препроцесорът е програма, която обработва изходния код, преди да премине през компилатора. Той работи с командния ред на препроцесора или директивите. В програмата директивите на препроцесора се поставят в изходната програма преди основната програма. Преди изходният код да премине през компилатора, той се проверява от препроцесора за препроцесорни директиви. Директивите на препроцесора имат символ #. За разлика от други изявления, те не завършват с точка и запетая. Един вид директива за препроцесора е макро. По принцип макросите се пишат с главни букви.

Фигура 01: Програма C ++ с макроси

Според горната програма, ред 3 и ред 4 означават макроси. При изчисляване на площта PI стойността се замества с помощта на дефинирания макрос. В ред 14, обем = CUBE (стойност), препроцесорът разширява оператора като обем = (стойност * стойност * стойност). Намирането на куба може да се запише като функция, но тук е написано с помощта на макрос. Ако има оператор като обем = CUBE (x + y), тогава той ще се разшири до обем = (x + y * x + y * x + y).

Някои маркери за програмиране могат лесно да бъдат въведени неправилно. Те могат да бъдат заменени с помощта на макроси. например #define И &&, #define ИЛИ || Макроопределението може също да включва изрази като #define AREA 4 * 5.56.

Какво е вградена функция?

Когато се извика функция, на компилатора е необходимо известно време, за да я изпълни. Ако функцията не е много сложна, програмистът може да преобразува функцията във вградена функция. Вижте по-долу програмата.

Фигура 02: Функция без вграждане

Print_hello е проста функция. Той отпечатва низ "Hello", когато се извика функцията. Времето за изпълнение на тази функция е 0.187s. Когато използвате вградената ключова дума по следния начин, времето за изпълнение намалява до 0.064s.

Фигура 03: Вградена функция

Следователно, използвайки вградената ключова дума, времето за изпълнение се намалява. Вградените функции може да не работят, ако има цикли, оператори за превключване и ако функцията съдържа статични променливи или рекурсивни функции.

Каква е разликата между макро и вградена функция?

Макро срещу вградена функция

Макрос е фрагмент от код, който е препроцесорна директива, която е включена в началото на програмата, предшествана от хеш знак. Вградена функция е функция за подобряване на C ++, за да се сведе до минимум времето за изпълнение на програма.
Време за оценка
В макрос аргументът се оценява всеки път, когато се използва в програмата. Inline, аргументът се оценява веднъж.
Проверен от
Препроцесорът проверява макрос. Вградена функция се проверява от компилатора.
 Ключова дума
Марко използва #define. Вградената функция използва ключовата дума „inline“.
употреба
Макросът може да се използва за дефиниране на константи, изрази, за буквално заместване на текст и за определяне на функции и т.н.. Вградена функция може да се използва за минимизиране на времето за изпълнение на програмата.
Прекратяване на договора
Макросът приключва с новия ред. Вградената функция завършва с къдравата скоба в края на вградената функция.
Определяща точка
Марко е определен в началото на програмата. Вградена функция може да бъде вътре или извън класа.

резюме - мама° Сro срещу Inline функция

Тази статия обсъжда разликата между макро и вградена функция. Тези понятия се използват в програмирането на C ++. Разликата между Macro и Inline Function е, че макросът се проверява от препроцесора, докато вградената функция се проверява от компилатора.

справка:

1. „Предпроцесорни директиви“. Cplusplus.com. Налични тук 
2. "C вградени функции." Www.tutorialspoint.com, Tutorials Point, 19 март 2018. Достъпно тук