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

Съдържание:

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

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

Видео: Разлика между макро и вградена функция
Видео: ОБЩЕСТВОЗНАНИЕ 11 класс. Макроэкономика и микроэкономика. 2024, Декември
Anonim

Ключова разлика – макро срещу вградена функция

Макрото е фрагмент от код, който е предпроцесорна директива. Вградената функция е функция за подобрение на 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.

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

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

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

Фигура 02: Функция без Inline

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

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

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

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

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

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

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

Резюме – Макро срещу вградена функция

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

Препоръчано: