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