Встраиваемые функции

Преимущества и недостатки использования встраиваемых (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.2011

  • Intel 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

  • Определение понятий "процедура" и "функция", порядок их объявления для нескольких модулей. Перечень возможных вариантов расположения подпрограмм и особенности их использования. Осуществление передачи параметров в подпрограммы по значению и наименованию.

    лабораторная работа [116,0 K], добавлен 30.09.2012

  • Использование встроенных функций MS Excel для решения конкретных задач. Возможности сортировки столбцов и строк, перечень функций и формул. Ограничения формул и способы преодоления затруднений. Выполнение практических заданий по использованию функций.

    лабораторная работа [21,3 K], добавлен 16.11.2008

  • Особенности кусочно-постоянных ортогональных функций Радемахера и Хаара, расчет спектров сложных сигналов. Представление сигналов в базисе несинусоидальных ортогональных функций, в базисе функций Хаара. Обобщенный ряд Фурье. Специфика функции Радемахера.

    лабораторная работа [783,7 K], добавлен 29.06.2010

  • Анализ существующих функциональных языков: история, семейства, преимущества. Анализ эффективности параллельного программирования для задачи обработки графического представления фрактальных функций. Программа умножения матриц, обработки изображения.

    дипломная работа [2,5 M], добавлен 12.01.2016

  • Понятие процедур и функций, их параметры, отличия и особенности спецификаций и тела. Вызов процедур и функций. Использование хранимых функций в SQL-операторах, уровни строгости для их вызова. Синтаксис удаления процедуры. Перегрузка модульных подпрограмм.

    презентация [259,9 K], добавлен 14.02.2014

  • Описание используемых в программе операторов, процедур, функций. Директива include. Правила объявления и определения функций в СИ++. Блок-схема алгоритма программы. Подпрограммы чтения из файла и записи в файл. Использование заголовочных файлов.

    курсовая работа [346,8 K], добавлен 26.04.2012

  • Разработка алгоритма и программы, обеспечивающей вычисление максимального значения функции на заданном отрезке, первой производной заданной функции. Методика расчёта, алгоритм решения задачи, описание программы. Результаты расчётов и графики функций.

    курсовая работа [576,6 K], добавлен 17.05.2011

  • Методы линейного программирования в математическом моделировании технологических процессов. Направление оптимизации целевой функции. Ввод функциональных зависимостей для целевой функции и ограничений осуществляется с использованием Мастера функций.

    курсовая работа [994,6 K], добавлен 04.01.2014

  • Вычисление выражений, использование стандартных функций; работа с графикой. Порядок действий при вычислении, способы ввода данных с клавиатуры. Построение таблиц функций. Организация циклов в программе, итерационные процессы. Работа с массивами чисел.

    контрольная работа [614,7 K], добавлен 16.09.2012

  • Производственная функция и ее свойства и экономическое содержание. Краткая история PHP - языка программирования, используемого на стороне WEB-сервера для динамической генерации HTML-страниц. Возможности и примеры использования MySQL (сервера баз данных).

    курсовая работа [572,4 K], добавлен 15.05.2015

  • Основы программирования в операционной системе Windows. Создание процессов в 32-битных операционных системах. Основное отличие дескриптора от идентификатора. Понятие критической секции. Основы вызова API-функций. Методы многозадачного программирования.

    курсовая работа [501,1 K], добавлен 18.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.