ВУЗ:
Составители:
Рубрика:
Обрабатывая каждый вызов подставляемой функции, компилятор
пытается подставить в текст программы код операторов ее тела. Специ-
фикатор inline определяет для функции так называемое внутреннее свя-
зывание, которое заключается в том, что компилятор вместо вызова
функции подставляет команды ее кода. При этом может увеличиваться
размер программы, но исключаются затраты на передачу управления
к вызываемой функции и возврата из нее. Подставляемые функции ис-
пользуют, если тело функции состоит из нескольких операторов.
Подставляемыми не могут быть:
1. рекурсивные функции;
2. функции, у которых вызов размещается до ее определения;
3. функции, которые вызываются более одного раза в выражении;
4. функции, содержащие циклы, переключатели и операторы пере-
ходов;
5. функции, которые имеют слишком большой размер, чтобы сде-
лать подстановку.
4.8.8. Функции с переменным числом параметров
В C++ допустимы функции, у которых при компиляции не фикси-
руется число параметров, и, кроме того может быть неизвестен тип этих
параметров. Количество и тип параметров становится известным только
в момент вызова, когда явно задан список фактических параметров.
Каждая функция с переменным числом параметров должна иметь хотя
бы один обязательный параметр. Определение функции с переменным
числом параметров:
тип имя (явные параметры,. . . )
{тело функции }
После списка обязательных параметров ставится запятая, а затем
многоточие, которое показывает, что дальнейший контроль соответ-
ствия количества и типов параметров при обработке вызова функции
производить не нужно. Сложность заключается в определении начала
и конца списка параметров, поэтому каждая функция с переменным
числом параметров должна иметь механизм определения количества
и типов параметров.
Существует два подхода:
1) известно количество параметров, которое передается как обяза-
тельный параметр;
2) известен признак конца списка параметров;
Пример 81. Найти среднее арифметическое последовательности
чисел, если известен признак конца списка параметров (подход 1).
171
Страницы
- « первая
- ‹ предыдущая
- …
- 169
- 170
- 171
- 172
- 173
- …
- следующая ›
- последняя »
