Ключова разлика – макро срещу вградена функция
Макрото е фрагмент от код, който е предпроцесорна директива. Вградената функция е функция за подобрение на C++ за минимизиране на времето за изпълнение на програма. Следователно ключовата разлика между Macro и Inline Function е, че макросът се проверява от препроцесора, докато вградената функция се проверява от компилатора.
В началото на програмата е включен макрос, предшестван от знак решетка. Когато в програмата има име на макрос, то се заменя със съдържанието на макроса.
Какво е Macro?
Препроцесорът е програма, която обработва изходния код, преди да премине през компилатора. Той работи с помощта на командния ред на препроцесора или директивите. В програмата директивите на препроцесора се поставят в изходната програма преди основната програма. Преди изходният код да премине през компилатора, той се проверява от препроцесора за директиви на препроцесора. Директивите на препроцесора имат символа. За разлика от други твърдения, те не завършват с точка и запетая. Един вид директива за препроцесор е макро. Обикновено макросите се изписват с главни букви.
Фигура 01: C++ програма с макроси
Съгласно горната програма, ред 3 и ред 4 показват макроси. При изчисляване на площта стойността на PI се замества с дефинирания макрос. В ред 14 обем=CUBE(стойност), препроцесорът разширява израза като обем=(стойностстойностстойност). Намирането на куба може да бъде написано като функция, но тук е написано с помощта на макрос. Ако има израз като volume=CUBE(x+y), тогава той ще се разшири до volume=(x+yx+yx+y).
Някои програмни токени може лесно да бъдат въведени грешно. Те могат да бъдат заменени с помощта на макроси. напр. define И &&, define ИЛИ ||. Дефиницията на макрос може също да включва изрази като define AREA 45.56.
Какво е вградена функция?
Когато се извика функция, компилаторът отнема известно време, за да я изпълни. Ако функцията не е много сложна, програмистът може да я преобразува във вградена функция. Вижте програмата по-долу.
Фигура 02: Функция без Inline
Print_hello е проста функция. Той отпечатва низа "Hello", когато функцията бъде извикана. Времето за изпълнение на тази функция е 0,187 s. Когато използвате вградената ключова дума, както следва, времето за изпълнение намалява до 0,064s.
Фигура 03: Вградена функция
Следователно, с помощта на вградената ключова дума, времето за изпълнение намалява. Вградените функции може да не работят, ако има цикли, оператори за превключване и ако функцията съдържа статични променливи или рекурсивни функции.
Каква е разликата между макро и вградена функция?
Макро срещу вградена функция |
|
Макрото е фрагмент от код, който е директива на предпроцесора, която е включена в началото на програмата, предшествана от знак хеш. | Вградената функция е функция за подобряване на C++ за минимизиране на времето за изпълнение на програма. |
Време за оценка | |
В макроса аргументът се оценява всеки път, когато се използва в програмата. | При inline аргументът се оценява веднъж. |
Проверен от | |
Макро се проверява от препроцесора. | Вградена функция се проверява от компилатора. |
Ключова дума | |
Марко използва define. | Вградената функция използва ключовата дума 'inline'. |
Употреба | |
Макрото може да се използва за дефиниране на константи, изрази, за буквално заместване на текст и за дефиниране на функции и т.н. | Може да се използва вградена функция за минимизиране на времето за изпълнение на програмата. |
Прекратяване | |
Макрото завършва с новия ред. | Вградената функция завършва с фигурната скоба в края на вградената функция. |
Определяне на точка | |
Марко се дефинира в началото на програмата. | Вградена функция може да бъде вътре или извън класа. |
Резюме – Макро срещу вградена функция
Тази статия обсъждаше разликата между Macro и Inline Function. Тези концепции се използват в програмирането на C++. Разликата между Macro и Inline Function е, че макросът се проверява от препроцесора, докато вградената функция се проверява от компилатора.