Основна разлика - Макро срещу вградена функция
Макросът е фрагмент от код, който е директива за препроцесор. Вградената функция е функция за подобряване на C ++ за минимизиране на времето за изпълнение на програма. Следователно ключовата разлика между макро и вградена функция е, че макросът се проверява от препроцесора, докато вградената функция се проверява от компилатора.
В началото на програмата е включен макрос, предшестван от знак за хеш. Когато в програмата има име на макрос, то се заменя със съдържанието на макроса.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е макрос
3. Какво е вградена функция
4. Успоредно сравнение - макрос и вградена функция в таблична форма
5. Резюме
Какво е макро?
Препроцесорът е програма, която обработва изходния код, преди да премине през компилатора. Той работи с помощта на командния ред на препроцесора или директивите. В програмата директивите на препроцесора се поставят в програмата източник преди основната програма. Преди изходният код да премине през компилатора, той се проверява от препроцесора за директиви на препроцесора. Директивите на препроцесора имат символа #. За разлика от други твърдения, те не завършват с точка и запетая. Един тип директива на препроцесора е макрос. По принцип макросите се пишат с главни букви.
Фигура 01: Програма C ++ с макроси
Според горната програма ред 3 и ред 4 показват макроси. Когато се изчислява площта, стойността на PI се замества с помощта на дефинирания макрос. В ред 14, том = КУБ (стойност), препроцесорът разширява изявлението като обем = (стойност * стойност * стойност). Намирането на куба може да бъде записано като функция, но тук е написано с помощта на макрос. Ако има изявление като обем = КУБ (x + y), то той ще се разшири до обем = (x + y * x + y * x + y).
Някои програмни символи могат лесно да бъдат въведени погрешно. Те могат да бъдат заменени с помощта на макроси. напр. #define AND &&, #define OR ||. Дефиницията на макрос също може да включва изрази като #define AREA 4 * 5.56.
Какво е вградена функция?
Когато се извика функция, компилаторът отнема известно време, за да я изпълни. Ако функцията не е много сложна, програмистът може да преобразува функцията във вградена функция. Вижте програмата по-долу.
Фигура 02: Функция без вграден
Print_hello е проста функция. Той отпечатва низа “Hello”, когато функцията е извикана. Времето за изпълнение на тази функция е 0,187s. Когато използвате вградената ключова дума, както следва, времето за изпълнение се намалява до 0,064s.
Фигура 03: Вградена функция
Следователно, с помощта на вградената ключова дума времето за изпълнение намалява. Вградените функции може да не работят, ако има цикли, оператори за превключване и ако функцията съдържа статични променливи или рекурсивни функции.
Каква е разликата между макро и вградена функция?
Различна статия Средна преди таблица
Макро срещу вградена функция |
|
Макросът е фрагмент от код, който е директива за препроцесор, която е включена в началото на програмата, предшествана от знак за хеш. | Вградената функция е функция за подобряване на C ++ за минимизиране на времето за изпълнение на програма. |
Време за оценка | |
В макрос аргументът се оценява всеки път, когато се използва в програмата. | В редица аргументът се оценява веднъж. |
Проверен от | |
Макросът се проверява от препроцесора. | Вградената функция се проверява от компилатора. |
Ключова дума | |
Марко използва #define. | Функцията за вграждане използва ключовата дума „вградена“. |
Употреба | |
Макросът може да се използва за дефиниране на константи, изрази, за буквално заместване на текст и за дефиниране на функции и т.н. | Вградена функция може да се използва, за да се сведе до минимум времето за изпълнение на програмата. |
Прекратяване на договора | |
Макрос завършва с новия ред. | Вградената функция завършва с къдравата скоба в края на вградената функция. |
Определяща точка | |
Марко е дефиниран в началото на програмата. | Вградена функция може да бъде вътре или извън класа. |
Резюме - Макро срещу вградена функция
Тази статия обсъжда разликата между макро и вградена функция. Тези концепции се използват в програмирането на C ++. Разликата между макро и вградена функция е, че макросът се проверява от препроцесора, докато вградената функция се проверява от компилатора.