Макрос - це фрагмент коду, який є директивою препроцесора. Вбудована функція - це функція розширення C ++, щоб мінімізувати час виконання програми. Тому ключова різниця між макросом та вбудованою функцією препроцесор перевіряє макрос, а компілятор перевіряє вбудовану функцію.
Макрос включається на початку програми, якому передує хеш-знак. Коли в програмі є ім'я макросу, воно замінюється вмістом макросу.
1. Огляд та ключові відмінності
2. Що таке макрос
3. Що таке вбудована функція
4. Порівнювання порівняння - функція макро-вбудована лінія в табличній формі
5. Підсумок
Препроцесор - це програма, яка обробляє вихідний код до того, як він пройде через компілятор. Він працює за допомогою командного рядка препроцесора або директив. У програмі директиви препроцесора розміщуються у вихідній програмі перед основною програмою. Перш ніж вихідний код проходить через компілятор, він перевіряється препроцесором на предмет директив препроцесора. Директиви препроцесора мають символ #. На відміну від інших тверджень, вони не закінчуються крапкою з комою. Один з типів директиви препроцесора - макрос. В основному макроси пишуться великими літерами.
Рисунок 01: Програма C ++ з макросами
Згідно з вищезазначеною програмою, рядок 3 та рядок 4 вказують макроси. При обчисленні площі значення PI підміняється за допомогою визначеного макросу. У рядку 14, том = CUBE (значення), препроцесор розширює оператор у вигляді volume = (value * value * value). Пошук куба можна записати як функцію, але тут він написаний за допомогою макросу. Якщо є твердження як volume = CUBE (x + y), воно розшириться до volume = (x + y * x + y * x + y).
Деякі маркери програмування можуть бути легко введені неправильно. Їх можна замінити за допомогою макросів. напр. #define І &&, #define АБО || Визначення макросу також може включати вирази, такі як #define AREA 4 * 5.56.
Коли функція викликається, компілятору потрібен певний час для її виконання. Якщо функція не дуже складна, програміст може перетворити функцію на вбудовану функцію. Дивіться програму нижче.
Малюнок 02: Функція без вставки
Print_hello - це проста функція. Він друкує рядок "Привіт", коли функція викликається. Час виконання цієї функції становить 0,187 с. При використанні вбудованого ключового слова наступним чином час виконання зменшується до 0,064 с.
Малюнок 03: Вбудована функція
Тому, використовуючи ключове слово inline, час виконання скорочується. Вбудовані функції можуть не працювати, якщо є петлі, оператори перемикання і якщо функція містить статичні змінні або рекурсивні функції.
Макрос проти вбудованої функції | |
Макрос - це фрагмент коду, який є директивою препроцесора, яка включається на початку програми, перед якою хеш-знак. | Вбудована функція - це функція розширення C ++, щоб мінімізувати час виконання програми. |
Час оцінки | |
У макросе аргумент оцінюється щоразу, коли він використовується в програмі. | Вбудований аргумент оцінюється один раз. |
Перевірено | |
Препроцесор перевіряє макрос. | Вбудована функція перевіряється компілятором. |
Ключове слово | |
Марко використовує #define. | Вбудована функція використовує ключове слово 'inline'. |
Використання | |
Макрос можна використовувати для визначення констант, виразів, для буквальної заміни тексту та для визначення функцій тощо. | Вбудована функція може бути використана для мінімізації часу виконання програми. |
Припинення | |
Макрос закінчується новим рядком. | Вбудована функція закінчується фігурною дужкою в кінці вбудованої функції. |
Визначальна точка | |
Марко визначений на початку програми. | Вбудована функція може бути всередині або поза класом. |
У цій статті обговорювалася різниця між функціями макросу та вбудованої функції. Ці поняття використовуються в програмуванні на C ++. Різниця між функцією макросу та вбудованої функції полягає в тому, що макрос перевіряється препроцесором, тоді як вбудована функція перевіряється компілятором.
1. "Директиви щодо препроцесорів". Cplusplus.com. Доступний тут
2. "Вбудовані функції C". Www.tutorialspoint.com, Tutorials Point, 19 березня 2018. Доступний тут