Cтраница 1
Встраиваемые функции исключают накладные расходы, связанные с вызовом функции. Программист может использовать ключевое слово inline, чтобы посоветовать компилятору сгенерировать машинные коды функции в нужных местах программы ( если это возможно), чтобы минимизировать вызовы функции. [1]
Встраиваемая функция, вычисляющая объем сферы. [2]
Создание встраиваемых функций зависит от директивы INLINE ( см. в разд. [3]
В язык введены встраиваемые функции и процедуры inline. Они обеспечивают более быстрое выполнение вычислений, правда, за счет некоторого увеличения размера кода. Особенности функций и процедуры inline рассмотрены в разд. [4]
Директива INLINE управляет созданием встраиваемых функций inline ( см. разд. [5]
Напишите программу на C, которая использует встраиваемую функцию circleArea, чтобы запросить у пользователя значение радиуса круга, рассчитать и напечатать значение площади этого круга. [6]
Нет гарантий, что компилятор примет этот совет, так как есть много ситуаций, в которых встраиваемые функции не допускаются. Не могут быть встраиваемыми виртуальные и динамические методы классов ( см. разд. Не могут объявляться встраиваемыми функции, содержащие блоки кода ассемблера ( см. разд. Встраиваемые функции не могут принимать параметры в виде открытых массивов ( см. разд. Есть еще ряд ситуаций, которые неприемлемы для встраиваемых функций. [7]
Процесс вызова процедуры или функции занимает определенное количество машинного времени. В ситуации, когда быстрота работы программы важнее чем компактность ее кода, многие языки программирования позволяют использовать встраиваемые функции. Встраиваемые функции и процедуры не вызываются программой. Вместо этого их код просто добавляется в участок вызова. [8]
Процесс вызова процедуры или функции занимает определенное количество машинного времени. В ситуации, когда быстрота работы программы важнее чем компактность ее кода, многие языки программирования позволяют использовать встраиваемые функции. Встраиваемые функции и процедуры не вызываются программой. Вместо этого их код просто добавляется в участок вызова. [9]
На самом деле все выглядит не в таком розовом свете. Встраиваемые функции-элементы, например, должны находиться в заголовочном файле, так что когда компилятор компилирует клиента, клиент может включить определение встраиваемой функции inline. Закрытые элементы перечисляются в определении класса в заголовочном файле, так что эти элементы видимы для клиентов, несмотря на то, что клиенты не могут иметь к ним доступа. [10]
Ряд реализаций трансляторов с языка Паскаль допускает возможность использования типа данных строка символов, что позволяет избежать этой проблемы. При этом строки символов считаются имеющими один и тот же тип независимо от их длины. Это, конечно решает проблему для конкретного типа данных ( строк символов), но не решает проблемы для других типов данных. Кроме того, это не обеспечивает возможности решения одной из вторичных проблем - вычисления длины константной строки символов, для решения которой обычно используется специальная встраиваемая функция. [11]
Нет гарантий, что компилятор примет этот совет, так как есть много ситуаций, в которых встраиваемые функции не допускаются. Не могут быть встраиваемыми виртуальные и динамические методы классов ( см. разд. Не могут объявляться встраиваемыми функции, содержащие блоки кода ассемблера ( см. разд. Встраиваемые функции не могут принимать параметры в виде открытых массивов ( см. разд. Есть еще ряд ситуаций, которые неприемлемы для встраиваемых функций. [12]
Нет гарантий, что компилятор примет этот совет, так как есть много ситуаций, в которых встраиваемые функции не допускаются. Не могут быть встраиваемыми виртуальные и динамические методы классов ( см. разд. Не могут объявляться встраиваемыми функции, содержащие блоки кода ассемблера ( см. разд. Встраиваемые функции не могут принимать параметры в виде открытых массивов ( см. разд. Есть еще ряд ситуаций, которые неприемлемы для встраиваемых функций. [13]