Подставляемая функция - Большая Энциклопедия Нефти и Газа, статья, страница 1
Когда мало времени, тут уже не до дружбы, - только любовь. Законы Мерфи (еще...)

Подставляемая функция

Cтраница 1


Подставляемые функции обычно являются функциями-членами класса. Часто их определения ( т.е. сами функции) размещаются в заголовочном файле вслед за объявлением класса.  [1]

Подставляемая функция может быть также определена в объявлении класса. Я еще не рассказывал о классах, поэтому отложим обсуждение этой возможности до завтра.  [2]

Подставляемая функция ( inline function) включается в исполняемый файл каждый раз, когда к ней происходит обращение.  [3]

Подставляемые функции объявляются подобно обычным функциям, но с использованием ключевого слова inline. Когда компилятор встречает в исходном тексте программы обращение к подставляемой функции, он помещает в исполняемый файл отдельную копию этой функции. Подставляемые функции выполняются быстрее, поскольку фактически вызова функции не происходит.  [4]

Обратите внимание, что использование подставляемых функций чревато и некоторыми издержками. Если функция вызывается 10 раз, то во время компиляции в программу будет вставлено 10 копий этой функции. За увеличение скорости выполнения программы нужно будет расплатиться размерами программного кода, в результате чего ожидаемого повышения эффективности программы может и не произойти.  [5]

Часто вместо макросов удобно объявить подставляемую функцию. Например, в листинге 21.3 создается функция CUBE, которая выполняет ту же работу, что и макрос CUBE в листинге 21.2, но в данном случае это делается способом, обеспечивающим контроль за соответствием типов.  [6]

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

В каких случаях лучше использовать макрос, чем подставляемую функцию.  [8]

Следующее, на что нужно обратить внимание в заголовочном файле - это использование подставляемых функций. Эти функции настолько малы, что имеет смысл сделать их подставляемыми. Вы могли также заметить, что класс Airplane имеет одну перегруженную функцию с именем GetStatusQ. При вызове с аргументом в виде символьного массива она возвращает строку состояния, а при вызове без аргументов - значение переменной status. Заметьте, что из всех членов-данных лишь один является открытым. Доступ к остальным членам возможен только через открытые функции.  [9]

Опция Disable Inline Expansions ( Запретить подстановку функций) управляет тем, как компилятор обрабатывает вызовы подставляемых функций. По умолчанию, тело функции подставляется в месте ее вызова.  [10]

Как мы знаем, ситуация теоремы 9 не самый общий случай образования сложной функции; вообще, каждая из подставляемых функций ft зависит от своей группы аргументов. Но случай, когда эти группы различны, сводится к рассмотренному в теореме 9 добавлением к каждой группе недостающих ей аргументов.  [11]

Основная идея вариационного метода состоит в том, что для искомой величины ( например, собственной частоты) находится такая формула, выражающая эту величину в виде интеграла от какой-либо функции ( например, от поля собственного колебания), которая, во-первых, дает точное значение искомой величины, если в нее подставить точное значение функции, и, во-вторых, при подстановке приближенного значения функции дает для искомой величины приближенное значение с существенно меньшей погрешностью, чем погрешность подставляемой функции. Такие выражения ( функционалы - они дают число в результате операций, производимых над функцией) называются стационарными функционалами. В § 15 будут рассмотрены стационарные функционалы от двух функций.  [12]

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

Подставляемые функции объявляются подобно обычным функциям, но с использованием ключевого слова inline. Когда компилятор встречает в исходном тексте программы обращение к подставляемой функции, он помещает в исполняемый файл отдельную копию этой функции. Подставляемые функции выполняются быстрее, поскольку фактически вызова функции не происходит.  [14]

Так какой же напрашивается вывод. Если в программе часто вызывается маленькая функция, состоящая из одной-двух строк, то это первый кандидат в подставляемые функции.  [15]



Страницы:      1    2