0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Программирование</a><ul><li><a>Ограничения</a></li>
1
<ul><li><a>Программирование</a><ul><li><a>Ограничения</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>В Excel</a><ul><li><a>Особенности</a></li>
3
<li><a>В Excel</a><ul><li><a>Особенности</a></li>
4
<li><a>Способы внедрения</a></li>
4
<li><a>Способы внедрения</a></li>
5
<li><a>Математика и статистика</a></li>
5
<li><a>Математика и статистика</a></li>
6
<li><a>Логика</a></li>
6
<li><a>Логика</a></li>
7
<li><a>Финансы</a></li>
7
<li><a>Финансы</a></li>
8
<li><a>Текст</a></li>
8
<li><a>Текст</a></li>
9
</ul></li>
9
</ul></li>
10
</ul><p>В программировании и некоторых офисных приложениях есть так называемые встроенные функции. С их помощью можно выполнять различные команды и операции в несколько раз быстрее. В случае с программированием происходит ускорение имеющегося исходного кода за счет занимаемого пространства. Соответствующие компоненты напоминают своеобразный заполнитель.</p>
10
</ul><p>В программировании и некоторых офисных приложениях есть так называемые встроенные функции. С их помощью можно выполнять различные команды и операции в несколько раз быстрее. В случае с программированием происходит ускорение имеющегося исходного кода за счет занимаемого пространства. Соответствующие компоненты напоминают своеобразный заполнитель.</p>
11
<p>В данной статье будет рассказано о том, что собой представляют встроенные функции. За основу будет взят язык разработки C++, а также офисное популярное приложение Excel.</p>
11
<p>В данной статье будет рассказано о том, что собой представляют встроенные функции. За основу будет взят язык разработки C++, а также офисное популярное приложение Excel.</p>
12
<h2>Программирование</h2>
12
<h2>Программирование</h2>
13
<p>Встроенная функция в языках разработки СИ-семейства (C и C++) - это функция, которую можно внедрить в программный код. Чтобы ее задать, нужно использовать ключевое слово inline. Соответствующий элемент приложения:</p>
13
<p>Встроенная функция в языках разработки СИ-семейства (C и C++) - это функция, которую можно внедрить в программный код. Чтобы ее задать, нужно использовать ключевое слово inline. Соответствующий элемент приложения:</p>
14
<ol><li>Является директивой компилятора. Она предлагает (но не требует в обязательном порядке), чтобы компилятор заменял тело функции встроенной, задействовав встроенные расширения. Код функции будет вставляться по адресу каждого его вызова. Это приведет к экономии ресурсов на непосредственный вызов операции. Компонент напоминает спецификатор хранилища - register. Он тоже помогает оптимизировать исходный код.</li>
14
<ol><li>Является директивой компилятора. Она предлагает (но не требует в обязательном порядке), чтобы компилятор заменял тело функции встроенной, задействовав встроенные расширения. Код функции будет вставляться по адресу каждого его вызова. Это приведет к экономии ресурсов на непосредственный вызов операции. Компонент напоминает спецификатор хранилища - register. Он тоже помогает оптимизировать исходный код.</li>
15
<li>Изменяет поведение компоновки. Подобная операция необходима из-за модели раздельной компиляции.</li>
15
<li>Изменяет поведение компоновки. Подобная операция необходима из-за модели раздельной компиляции.</li>
16
</ol><p>При помощи встроенных различных функций программист добьется быстродействия даже самого объемного приложения. Использоваться ключевое слово inline достаточно легко. Для этого необходимо поставить соответствующую "фразу" перед именем функции. После происходит использование встроенной "команды" в качестве самой обычной функции.</p>
16
</ol><p>При помощи встроенных различных функций программист добьется быстродействия даже самого объемного приложения. Использоваться ключевое слово inline достаточно легко. Для этого необходимо поставить соответствующую "фразу" перед именем функции. После происходит использование встроенной "команды" в качестве самой обычной функции.</p>
17
<p>Выше - пример того, как можно<a>встроить функцию</a>в программный код C++.</p>
17
<p>Выше - пример того, как можно<a>встроить функцию</a>в программный код C++.</p>
18
<h3>Ограничения</h3>
18
<h3>Ограничения</h3>
19
<p>GCC не сможет внедрять функции, если:</p>
19
<p>GCC не сможет внедрять функции, если:</p>
20
<ul><li>они выступают в качестве вариативных;</li>
20
<ul><li>они выступают в качестве вариативных;</li>
21
<li>используется alloca;</li>
21
<li>используется alloca;</li>
22
<li>в процессе задействованы вычисленные или нелокальные goto;</li>
22
<li>в процессе задействованы вычисленные или нелокальные goto;</li>
23
<li>в коде используются вложенные функции;</li>
23
<li>в коде используются вложенные функции;</li>
24
<li>используются: setjmp, __builtin_longjmp, __builtin_return, __builting_apply_args.</li>
24
<li>используются: setjmp, __builtin_longjmp, __builtin_return, __builting_apply_args.</li>
25
</ul><p>В спецификациях Microsoft в MSDN и Visual C++ нельзя внедрить функцию (даже при помощи __forceinline), когда:</p>
25
</ul><p>В спецификациях Microsoft в MSDN и Visual C++ нельзя внедрить функцию (даже при помощи __forceinline), когда:</p>
26
<ul><li>происходит компиляция объекта, вызывающего функцию (или самой команды), через /Ob0;</li>
26
<ul><li>происходит компиляция объекта, вызывающего функцию (или самой команды), через /Ob0;</li>
27
<li>объект и функция используют разные типы обработка исключений;</li>
27
<li>объект и функция используют разные типы обработка исключений;</li>
28
<li>в "команде" есть список переменных аргументов;</li>
28
<li>в "команде" есть список переменных аргументов;</li>
29
<li>используется встроенная сборка - если она не скомпилирована через /Og, /Ox, /O2 или /O1;</li>
29
<li>используется встроенная сборка - если она не скомпилирована через /Og, /Ox, /O2 или /O1;</li>
30
<li>задействованная "команда" выступает рекурсивной и не сопровождается #pragma inline_recursion(on);</li>
30
<li>задействованная "команда" выступает рекурсивной и не сопровождается #pragma inline_recursion(on);</li>
31
<li>происходит виртуальный вызов "команды";</li>
31
<li>происходит виртуальный вызов "команды";</li>
32
<li>приложение воспринимает адрес функции, после чего происходит вызов через указатели.</li>
32
<li>приложение воспринимает адрес функции, после чего происходит вызов через указатели.</li>
33
</ul><p>Также стоит обратить внимание на то, что встроить рассматриваемый компонент не получится при его предварительной пометке через модификатор naked __declspec.</p>
33
</ul><p>Также стоит обратить внимание на то, что встроить рассматриваемый компонент не получится при его предварительной пометке через модификатор naked __declspec.</p>
34
<p>Использование встраиваемых функций в C++ - это не слишком трудно. Не рекомендуется пользоваться соответствующим приемом с особо объемными кодами. Это может привести к значительному увеличению "тяжести" приложения. А еще компилятор может по собственному усмотрению игнорировать попытки программиста сделать функцию "внедренной".</p>
34
<p>Использование встраиваемых функций в C++ - это не слишком трудно. Не рекомендуется пользоваться соответствующим приемом с особо объемными кодами. Это может привести к значительному увеличению "тяжести" приложения. А еще компилятор может по собственному усмотрению игнорировать попытки программиста сделать функцию "внедренной".</p>
35
<h2>В Excel</h2>
35
<h2>В Excel</h2>
36
<p>MS Excel - популярное "офисное" приложение. С его помощью люди работают с различными базами данных, а также с электронными таблицами. Здесь тоже есть рассматриваемый компонент. Только он работает иначе.</p>
36
<p>MS Excel - популярное "офисное" приложение. С его помощью люди работают с различными базами данных, а также с электронными таблицами. Здесь тоже есть рассматриваемый компонент. Только он работает иначе.</p>
37
<p>Здесь встраиваемые функции - это заранее прописанные процедуры преобразования имеющихся электронных материалов. Все соответствующие "команды" делят на несколько категорий:</p>
37
<p>Здесь встраиваемые функции - это заранее прописанные процедуры преобразования имеющихся электронных материалов. Все соответствующие "команды" делят на несколько категорий:</p>
38
<ul><li>математические;</li>
38
<ul><li>математические;</li>
39
<li>статистические;</li>
39
<li>статистические;</li>
40
<li>логические;</li>
40
<li>логические;</li>
41
<li>финансовые;</li>
41
<li>финансовые;</li>
42
<li>текстовые;</li>
42
<li>текстовые;</li>
43
<li>иные типы.</li>
43
<li>иные типы.</li>
44
</ul><p>Каждая категория отвечает за отображение своих собственных операций и работу с данными.</p>
44
</ul><p>Каждая категория отвечает за отображение своих собственных операций и работу с данными.</p>
45
<h3>Особенности</h3>
45
<h3>Особенности</h3>
46
<p>Каждая "команда" встроенного характера имеет:</p>
46
<p>Каждая "команда" встроенного характера имеет:</p>
47
<ol><li>Имя. Обычно - сокращенное название производимого действия. Вызываются соответствующие компоненты с теми или иными аргументами. Чаще всего возвращают единственное значение. Подразумевается результат проведенных манипуляций.</li>
47
<ol><li>Имя. Обычно - сокращенное название производимого действия. Вызываются соответствующие компоненты с теми или иными аргументами. Чаще всего возвращают единственное значение. Подразумевается результат проведенных манипуляций.</li>
48
<li>Аргументы. Элемент и его содержимое меняется в зависимости от типа "команды". В виде аргумента может выступить тест, выражение, ссылки на ячейки, а также диапазоны, числа, результаты обработки иных "команд".</li>
48
<li>Аргументы. Элемент и его содержимое меняется в зависимости от типа "команды". В виде аргумента может выступить тест, выражение, ссылки на ячейки, а также диапазоны, числа, результаты обработки иных "команд".</li>
49
</ol><p>Рассматриваемые элементы условно делятся на:</p>
49
</ol><p>Рассматриваемые элементы условно делятся на:</p>
50
<ul><li>содержащие один аргумент;</li>
50
<ul><li>содержащие один аргумент;</li>
51
<li>с несколькими фиксированными "параметрами";</li>
51
<li>с несколькими фиксированными "параметрами";</li>
52
<li>операции с нефиксированным количеством аргументов;</li>
52
<li>операции с нефиксированным количеством аргументов;</li>
53
<li>с необязательными "параметрами".</li>
53
<li>с необязательными "параметрами".</li>
54
</ul><p>Есть и операции, которые вовсе не предусматривают те или иные аргументы. Пример - ТДАТА. При использовании встраиваемых в Excel функций нужно сначала указать ее имя, после в скобочках - перечислить аргументы посредством точки с запятой.</p>
54
</ul><p>Есть и операции, которые вовсе не предусматривают те или иные аргументы. Пример - ТДАТА. При использовании встраиваемых в Excel функций нужно сначала указать ее имя, после в скобочках - перечислить аргументы посредством точки с запятой.</p>
55
<p>Выше - примеры соответствующих записей.</p>
55
<p>Выше - примеры соответствующих записей.</p>
56
<h3>Способы внедрения</h3>
56
<h3>Способы внедрения</h3>
57
<p>В Excel можно вставить функцию в имеющуюся формулу несколькими путями:</p>
57
<p>В Excel можно вставить функцию в имеющуюся формулу несколькими путями:</p>
58
<ol><li>Использовать кнопки категорий "команд" в группе "Библиотека…". Она находится на навигационной ленте в блоке "Формулы".</li>
58
<ol><li>Использовать кнопки категорий "команд" в группе "Библиотека…". Она находится на навигационной ленте в блоке "Формулы".</li>
59
<li>Задействовать специальный инструмент офисного приложения. Он носит название "Вставить команду". Тоже расположен в "Библиотеке". Альтернативное решение - использование формул.</li>
59
<li>Задействовать специальный инструмент офисного приложения. Он носит название "Вставить команду". Тоже расположен в "Библиотеке". Альтернативное решение - использование формул.</li>
60
<li>Указать (ввести) необходимое выражение непосредственно в ту или иную ячейку. Допускается ее написание в строке формул.</li>
60
<li>Указать (ввести) необходимое выражение непосредственно в ту или иную ячейку. Допускается ее написание в строке формул.</li>
61
</ol><p>Далее стоит изучить более подробно каждый тип имеющихся "выражений". Тогда пользователь сможет понять, в каких ситуациях ими пользоваться.</p>
61
</ol><p>Далее стоит изучить более подробно каждый тип имеющихся "выражений". Тогда пользователь сможет понять, в каких ситуациях ими пользоваться.</p>
62
<h3>Математика и статистика</h3>
62
<h3>Математика и статистика</h3>
63
<p>Выражения, которые встроены в Excel специально для того, чтобы решать математические задачки. Сюда же относят решение вопрос, связанных со статистикой. Соответствующие операции помогают автоматизировать статистическую обработку имеющейся информации.</p>
63
<p>Выражения, которые встроены в Excel специально для того, чтобы решать математические задачки. Сюда же относят решение вопрос, связанных со статистикой. Соответствующие операции помогают автоматизировать статистическую обработку имеющейся информации.</p>
64
<p>Выше - наиболее распространенные варианты "команд". Чтобы лучше понять принцип их действия, рекомендуется опробовать каждую операцию на практике.</p>
64
<p>Выше - наиболее распространенные варианты "команд". Чтобы лучше понять принцип их действия, рекомендуется опробовать каждую операцию на практике.</p>
65
<h3>Логика</h3>
65
<h3>Логика</h3>
66
<p>Есть логические встроенные функции. Они выдают результат "истина" или "ложь". Сюда относят:</p>
66
<p>Есть логические встроенные функции. Они выдают результат "истина" или "ложь". Сюда относят:</p>
67
<ul><li>если;</li>
67
<ul><li>если;</li>
68
<li>и;</li>
68
<li>и;</li>
69
<li>или;</li>
69
<li>или;</li>
70
<li>истина;</li>
70
<li>истина;</li>
71
<li>ложь;</li>
71
<li>ложь;</li>
72
<li>не.</li>
72
<li>не.</li>
73
</ul><p>Принцип действия точно такой же, как и в программировании.</p>
73
</ul><p>Принцип действия точно такой же, как и в программировании.</p>
74
<h3>Финансы</h3>
74
<h3>Финансы</h3>
75
<p>Встроить можно еще и команды, связанные с разного рода финансовыми операциями. Они помогают вычислять размеры выплат при погашении кредитных долгов, а также определять банковские процентные ставки и многое другое.</p>
75
<p>Встроить можно еще и команды, связанные с разного рода финансовыми операциями. Они помогают вычислять размеры выплат при погашении кредитных долгов, а также определять банковские процентные ставки и многое другое.</p>
76
<p>Предназначаются преимущественно для "операций с деньгами". При грамотном использовании значительно облегчают жизнь каждому человеку.</p>
76
<p>Предназначаются преимущественно для "операций с деньгами". При грамотном использовании значительно облегчают жизнь каждому человеку.</p>
77
<h3>Текст</h3>
77
<h3>Текст</h3>
78
<p>Таблицы Excel используются преимущественно для работы с числами, но и обработка текстовой информации там тоже предусмотрена. Microsoft предлагает использовать встроенные функции соответствующего характера для автоматизации процессов.</p>
78
<p>Таблицы Excel используются преимущественно для работы с числами, но и обработка текстовой информации там тоже предусмотрена. Microsoft предлагает использовать встроенные функции соответствующего характера для автоматизации процессов.</p>
79
<p>Пример - чтобы занести названия товаров или услуг, фамилии, имена и отчества сотрудников, адреса и телефоны компаний. В Excel есть встроенные операции, которые позволяют определять:</p>
79
<p>Пример - чтобы занести названия товаров или услуг, фамилии, имена и отчества сотрудников, адреса и телефоны компаний. В Excel есть встроенные операции, которые позволяют определять:</p>
80
<ul><li>длину написанного текста;</li>
80
<ul><li>длину написанного текста;</li>
81
<li>номер имеющейся позиции первого вхождения символа в текст;</li>
81
<li>номер имеющейся позиции первого вхождения символа в текст;</li>
82
<li>части текста, которая отвечает определенным условиям.</li>
82
<li>части текста, которая отвечает определенным условиям.</li>
83
</ul><p>В виде аргументов тут выступают текстовые данные, ссылки на ячейки с различным текстом или числами.</p>
83
</ul><p>В виде аргументов тут выступают текстовые данные, ссылки на ячейки с различным текстом или числами.</p>
84
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> Ниже - один из них:</p>
84
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> Ниже - один из них:</p>
85
<a></a><p><a>C++</a></p>
85
<a></a><p><a>C++</a></p>
86
86