Ключевое различие - макрос против встроенной функции
Макрос - это фрагмент кода, который является директивой препроцессора. Встроенная функция - это усовершенствованная функция C ++, позволяющая минимизировать время выполнения программы. Таким образом, ключевое различие между макросом и встроенной функцией состоит в том, что макрос проверяется препроцессором, а встроенная функция проверяется компилятором.
Макрос включен в начало программы, перед ним стоит знак решетки. Если в программе есть имя макроса, оно заменяется содержимым макроса.
СОДЕРЖАНИЕ
1. Обзор и основные различия
2. Что такое макрос
3. Что такое встроенная функция
4. Сравнение бок о бок - макрос и встроенная функция в табличной форме
5. Резюме
Что такое макрос?
Препроцессор - это программа, которая обрабатывает исходный код перед его прохождением через компилятор. Он работает с использованием командной строки препроцессора или директив. В программе директивы препроцессора помещаются в исходную программу перед основной программой. Перед тем, как исходный код проходит через компилятор, препроцессор проверяет его на наличие директив препроцессора. Директивы препроцессора имеют символ #. В отличие от других операторов, они не заканчиваются точкой с запятой. Одним из типов директив препроцессора является макрос. Как правило, макросы пишутся заглавными буквами.
Рисунок 01: Программа на C ++ с макросами
Согласно приведенной выше программе, в строке 3 и строке 4 указаны макросы. При расчете площади значение PI подставляется с использованием определенного макроса. В строке 14 volume = CUBE (значение) препроцессор разворачивает оператор как volume = (значение * значение * значение). Поиск куба можно записать как функцию, но здесь это написано с использованием макроса. Если есть выражение как volume = CUBE (x + y), то оно расширится до volume = (x + y * x + y * x + y).
Некоторые программные токены могут легко ошибиться. Их можно заменить с помощью макросов. например, #define AND &&, #define OR ||. Определение макроса может также включать такие выражения, как #define AREA 4 * 5.56.
Что такое встроенная функция?
Когда функция вызывается, компилятору требуется некоторое время для ее выполнения. Если функция не очень сложная, программист может преобразовать функцию во встроенную функцию. Обратитесь к программе ниже.
Рисунок 02: Функция без Inline
Print_hello - простая функция. При вызове функции выводится строка «Hello». Время выполнения этой функции составляет 0,187 с. При использовании ключевого слова inline следующим образом время выполнения сокращается до 0,064 с.
Рисунок 03: Встроенная функция
Следовательно, при использовании ключевого слова inline время выполнения сокращается. Встроенные функции могут не работать, если есть циклы, операторы переключения и если функция содержит статические переменные или рекурсивные функции.
В чем разница между макросом и встроенной функцией?
Различать статью в середине перед таблицей
Макрос против встроенной функции |
|
Макрос - это фрагмент кода, который представляет собой директиву препроцессора, которая включается в начало программы, которой предшествует знак решетки. | Встроенная функция - это усовершенствованная функция C ++, позволяющая минимизировать время выполнения программы. |
Время оценки | |
В макросе аргумент оценивается каждый раз, когда он используется в программе. | В строке аргумент оценивается один раз. |
Проверено | |
Макрос проверяется препроцессором. | Встроенная функция проверяется компилятором. |
Ключевое слово | |
Марко использует #define. | Встроенная функция использует ключевое слово inline. |
Применение | |
Макрос может использоваться для определения констант, выражений, для подстановки буквального текста и для определения функций и т. Д. | Встроенная функция может использоваться для минимизации времени выполнения программы. |
Прекращение | |
Макрос завершается новой строкой. | Встроенная функция заканчивается фигурной скобкой в конце встроенной функции. |
Определяющая точка | |
Марко определяется в начале программы. | Встроенная функция может находиться внутри или вне класса. |
Резюме - макрос против встроенной функции
В этой статье обсуждалась разница между макросом и встроенной функцией. Эти концепции используются в программировании на C ++. Разница между макросом и встроенной функцией заключается в том, что макрос проверяется препроцессором, а встроенная функция проверяется компилятором.