Встраиваемые функции
Преимущества и недостатки использования встраиваемых (in-line) функций, особенности их использования в различных языках программирования. Встраиваемая функция, вычисляющая объем сферы. Директива INLINE в управлении созданием встраиваемых функций.
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | статья |
| Язык | русский |
| Дата добавления | 12.03.2015 |
| Размер файла | 11,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Встраиваемые функции
В C++ можно задать функцию, которая на самом деле не вызывается, а ее тело встраивается в программу в месте ее вызова. Преимуществом встраиваемых (in-line) функций является то, что они не связаны с механизмом вызова функций и возврата ими своего значения. Это значит, что встраиваемые функции могут выполняться гораздо быстрее обычных.
Замечание. Выполнение машинных команд, которые генерируют вызов функции и возвращение функцией своего значения, занимает определенное время. Если функция имеет параметры, то ее вызов занимает еще большее время.
Недостатком встраиваемых функций является то, что если они слишком большие и вызываются слишком часто, объем ваших программ сильно возрастает. Из-за этого применение встраиваемых функций обычно ограничивается короткими функциями.
Для объявления встраиваемой функции просто впишите спецификатор inline перед определением функции.
Особенность использования встраиваемой функции: она должна быть задана до ее первого вызова. Если это не так, компилятор не будет знать, какой именно код предполагается встроить в программу с помощью встраиваемой функции. Поэтому функция even() была определена перед функцией main().
Любая функция может стать встраиваемой, включая функции -- члены классов. Например, функция divisible!) для ускорения ее выполнения сделана встраиваемой. Функция возвращает истину, если ее первый аргумент без остатка может делиться на второй.
Встраиваемые функции исключают накладные расходы, связанные с вызовом функции. Программист может использовать ключевое слово inline, чтобы посоветовать компилятору сгенерировать машинные коды функции в нужных местах программы (если это возможно), чтобы минимизировать вызовы функции.
программирование встраиваемый функция
Встраиваемая функция, вычисляющая объем сферы.
Создание встраиваемых функций зависит от директивы INLINE
В язык введены встраиваемые функции и процедуры inline. Они обеспечивают более быстрое выполнение вычислений, правда, за счет некоторого увеличения размера кода. Особенности функций и процедуры inline рассмотрены в разд.
Директива INLINE управляет созданием встраиваемых функций inline
Напишите программу на C, которая использует встраиваемую функцию circleArea, чтобы запросить у пользователя значение радиуса круга, рассчитать и напечатать значение площади этого круга.
Процесс вызова процедуры или функции занимает определенное количество машинного времени. В ситуации, когда быстрота работы программы важнее, чем компактность ее кода, многие языки программирования позволяют использовать встраиваемые функции. Встраиваемые функции и процедуры не вызываются программой. Вместо этого их код просто добавляется в участок вызова.
На самом деле все выглядит не в таком розовом свете. Встраиваемые функции-элементы, например, должны находиться в заголовочном файле, так что когда компилятор компилирует клиента, клиент может включить определение встраиваемой функции inline. Закрытые элементы перечисляются в определении класса в заголовочном файле, так что эти элементы видимы для клиентов, несмотря на то, что клиенты не могут иметь к ним доступа.
Ряд реализаций трансляторов с языка Паскаль допускает возможность использования типа данных строка символов, что позволяет избежать этой проблемы. При этом строки символов считаются имеющими один и тот же тип независимо от их длины. Это, конечно, решает проблему для конкретного типа данных (строк символов), но не решает проблемы для других типов данных. Кроме того, это не обеспечивает возможности решения одной из вторичных проблем - вычисления длины константной строки символов, для решения которой обычно используется специальная встраиваемая функция.
Нет гарантий, что компилятор примет этот совет, так как есть много ситуаций, в которых встраиваемые функции не допускаются. Не могут быть встраиваемыми виртуальные и динамические методы классов. Не могут объявляться встраиваемыми функции, содержащие блоки кода ассемблера. Встраиваемые функции не могут принимать параметры в виде открытых массивов.
Размещено на Allbest.ru
Подобные документы
Современные средства информационных технологий для разработки пользовательских приложений. Ввод и вывод информации. Встроенные диалоговые окна. Использование элементов управления, встраиваемых на рабочие листы. Создание диалоговых окон пользователей.
учебное пособие [2,1 M], добавлен 27.04.2011Рассмотрение особенностей объявления функций на языке СИ. Определение понятий аргументов функции и их переменных (локальных, регистровых, внешних, статических). Решение задачи программным методом: составление блок-схемы, описание функций main и sqr.
презентация [125,5 K], добавлен 26.07.2013Описание параметрических и непараметрических методов штрафных функций в области нелинейного программирования. Решение задачи с использованием множителей Лагранжа. Непрерывность, гладкость, выпуклость, простота вычисления значения функции и производных.
курсовая работа [114,8 K], добавлен 25.11.2011Intel 8051 как 8-разрядный однокристальный микроконтроллер гардвардской архитектуры, впервые произведенный компанией Intel в 1980 году и предназначенный для использования во встраиваемых системах, его структура и функционал. Алгоритм работы программы.
контрольная работа [48,2 K], добавлен 04.03.2014Понятия шаблонов функции и класса, правила описания на языке С++. Разработка и отлаживание в среде программирования программ, содержащих шаблоны функций и классов. Шаблон функции square, возвращающей квадрат переменной. Создание шаблона класса массива.
лабораторная работа [162,6 K], добавлен 25.05.2013Описание функций, использующихся в программах. Основы 32-битного программирования на языке Assembler для ОС WINDOWS. Использование функции invoke, которая позволяет намного сократить текст программы и делает приложения похожими на программы для "ЯВы".
курсовая работа [252,6 K], добавлен 20.02.2015Си - это язык программирования общего назначения. Постановка задачи: разработка программы - калькулятора. Метод решения задачи. Алгоритм работы программы. Технические данные для использования. Описание основных функций.
курсовая работа [14,1 K], добавлен 23.05.2002Возможность использования формул и функций в MS Excel. Относительные и абсолютные ссылки. Типы операторов. Порядок выполнения действий в формулах. Создание формулы с вложением функций. Формирование и заполнение ведомости расхода горючего водителем.
контрольная работа [55,7 K], добавлен 25.04.2013Описание используемых функций и директивы Invoke: get module handle, get command line, win main, exit process, load menu. Архитектура OpenGL, основные задачи. Текст программы: краткое описание, opengl.inc, opngl.asm. Результаты выполнения программы.
курсовая работа [215,6 K], добавлен 18.05.2014Использование встроенных функций MS Excel для решения конкретных задач. Возможности сортировки столбцов и строк, перечень функций и формул. Ограничения формул и способы преодоления затруднений. Выполнение практических заданий по использованию функций.
лабораторная работа [21,3 K], добавлен 16.11.2008


