Макрос е фрагмент от код, който е препроцесорна директива. Вградена функция е функция за подобряване на 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“. |
употреба | |
Макросът може да се използва за дефиниране на константи, изрази, за буквално заместване на текст и за определяне на функции и т.н.. | Вградена функция може да се използва за минимизиране на времето за изпълнение на програмата. |
Прекратяване на договора | |
Макросът приключва с новия ред. | Вградената функция завършва с къдравата скоба в края на вградената функция. |
Определяща точка | |
Марко е определен в началото на програмата. | Вградена функция може да бъде вътре или извън класа. |
Тази статия обсъжда разликата между макро и вградена функция. Тези понятия се използват в програмирането на C ++. Разликата между Macro и Inline Function е, че макросът се проверява от препроцесора, докато вградената функция се проверява от компилатора.
1. „Предпроцесорни директиви“. Cplusplus.com. Налични тук
2. "C вградени функции." Www.tutorialspoint.com, Tutorials Point, 19 март 2018. Достъпно тук