Функция – обособленная и именованная совокупность объявлений и операторов языка, предназначенная для выполнения некоторой задачи. Функция является основной функциональной единицей программы на языке Си. В программе есть по крайней мере 1 функция main. Функция имеет 2 формальных представления:
Определение:
[<спецификация класса памяти>] [<тип возврата>] <описатель> (<список форм. параметров>) <тело функции>
- спецификация класса памяти – определяем время жизни и видимость объекта. Поскольку функция – глобально живущий объект в ОП и под нее там распределяется спец. сегмент (сегмент кода), к функциям применимы спецификаторы класса памяти, исп. для глобально живущих переменных: static, extern
- тип возврата – любая функция может сформировать некоторой выражение в операторе return, вычислить его и передать в точку вызова. Результат – это значение, которым можно оперировать как единым целым. Результат приводится к типу, который объявлен как тип возврата функции. Если функция не должна возвращать значение, то ее тип возврата void и после return ничего нет
- описатель – ид., именующий точку входа функции и позволяющий осуществить прямую или косвенную передачу управления на эту току
- формальные параметры – временные переменные, которые принимают значение, задаваемые при вызове функции в порядке их следования в списке. Список представляет собой разделенные запятыми конструкции вида <спецификация типа> <ид> (auto, register).
- тело функции – составной оператор поэтому воспринимается как единственный оператор, однако сам по себе содержит совокупность объявлений и операторов.
Объявление:
[<спецификация класса памяти>] <тип возврата> <описатель> (<список факт. параметров>)
заголовочная часть определения и поэтому разночтений быть не должно. Объявление позволяет осуществить приведение типов факт. Параметров к типу форм. параметров.
<выражение> (<список выражений>)
строка вызова функции предполагает размещение фактических аргументов в стеке и передачу управления на точку входа функции. Вызов функции осуществляется в следующем порядке: последовательно вычисляются выражения из списка, полученные значения приводятся к типу, заданному в объявлении функции, в соответствии с этим типом в стеке размещаются временные переменные, куда и присваиваются результаты выражений в том порядке, в каком они записаны в списке. <выр> тоже вычисляется и его результат интерпретируется как адрес точки входа функции и по этому адресу передается управление.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.