Разница между макросом и встроенной функцией

Оглавление:

Разница между макросом и встроенной функцией
Разница между макросом и встроенной функцией

Видео: Разница между макросом и встроенной функцией

Видео: Разница между макросом и встроенной функцией
Видео: ВСЁ ЧТО НУЖНО ЗНАТЬ О МАКРОСАХ ДЛЯ МЫШЕК В 2021 ГОДУ! 2024, Ноябрь
Anonim

Ключевое различие - макрос против встроенной функции

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

Что такое встроенная функция?

Когда функция вызывается, компилятору требуется некоторое время для ее выполнения. Если функция не очень сложная, программист может преобразовать функцию во встроенную функцию. Обратитесь к программе ниже.

Разница между макросом и встроенной функцией Рисунок 2
Разница между макросом и встроенной функцией Рисунок 2

Рисунок 02: Функция без Inline

Print_hello - простая функция. При вызове функции выводится строка «Hello». Время выполнения этой функции составляет 0,187 с. При использовании ключевого слова inline следующим образом время выполнения сокращается до 0,064 с.

Ключевое различие между макросом и встроенной функцией
Ключевое различие между макросом и встроенной функцией

Рисунок 03: Встроенная функция

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

В чем разница между макросом и встроенной функцией?

Различать статью в середине перед таблицей

Макрос против встроенной функции

Макрос - это фрагмент кода, который представляет собой директиву препроцессора, которая включается в начало программы, которой предшествует знак решетки. Встроенная функция - это усовершенствованная функция C ++, позволяющая минимизировать время выполнения программы.
Время оценки
В макросе аргумент оценивается каждый раз, когда он используется в программе. В строке аргумент оценивается один раз.
Проверено
Макрос проверяется препроцессором. Встроенная функция проверяется компилятором.
Ключевое слово
Марко использует #define. Встроенная функция использует ключевое слово inline.
Применение
Макрос может использоваться для определения констант, выражений, для подстановки буквального текста и для определения функций и т. Д. Встроенная функция может использоваться для минимизации времени выполнения программы.
Прекращение
Макрос завершается новой строкой. Встроенная функция заканчивается фигурной скобкой в конце встроенной функции.
Определяющая точка
Марко определяется в начале программы. Встроенная функция может находиться внутри или вне класса.

Резюме - макрос против встроенной функции

В этой статье обсуждалась разница между макросом и встроенной функцией. Эти концепции используются в программировании на C ++. Разница между макросом и встроенной функцией заключается в том, что макрос проверяется препроцессором, а встроенная функция проверяется компилятором.

Рекомендуем: