620_____________________________________________Глава 11

11.5 Функции

11.5.1 Объявление и описание функций

Функции представляют собой программные блоки, которые могут вызываться
из разных частей программы. При вызове в них передаются некоторые перемен-
ные, константы, выражения, являющиеся аргументами, которые в самих процеду-
рах и функциях воспринимаются как формальные параметры. При этом функции
возвращают значение определенного типа, которое замещает в вызвавшем выра-
жении имя вызванной функции.

Например, оператор

I = 5 * F(X);

вызывает функцию F с аргументом X, умножает возвращенное ею значение на 5 и
присваивает результат переменной I.

Допускается также вызов функции, не использующий возвращаемого ею зна-
чения. Например:

F(X) ;

В этом случае возвращаемое функцией значение игнорируется.
Функция описывается следующим образом:

тип_возвращаемого значения имя функции(список параметров)
(

операторы тела функции
}

Первая строка этого описания, содержащая тип возвращаемого значения, имя
функции и список параметров, называется заголовком функции. Тип возвращае-
мого значения может быть любым, кроме массива и функции. Могут быть также
функции, не возвращающие никакого значения. В заголовке таких функций тип
возвращаемого значения объявляется void.

Если тип возвращаемого значения не указан, он по умолчанию считается рав-
ным int.

Хороший стиль программирования

Хотя тип возвращаемого параметра int можно не указывать в заголовке функции, не надо
использовать эту возможность. Всегда указывайте тип возвращаемого параметра, кроме
главной функции main. Указание типа делает программу более наглядной и предотвращав
возможные ошибки, связанные с неправильным преобразованием типов.

Список параметров, заключаемый в скобки, в простейшем случае (более слож-
ные формы задания списка параметров будут рассмотрены позднее) представляет
собой разделяемый запятыми список вида

тип_параметра иденификатор параметра
Например, заголовок:

double FSum(double XI,double X2, int A)

объявляет функцию с именем FSum, с тремя параметрами XI, X2 и А, из которых
первые два имеют тип double, а последний — int. Тип возвращаемого результа-
та — double. Имена параметров XI, X2 и А — локальные, т.е. они имеют значение
только внутри данной функции и никак не связаны с именами аргументов, пере-
данных при вызове функции. Значения этих параметров в начале выполнения
функции равны значениям аргументов на момент вызова функции. Подробнее эти
вопросы будут рассмотрены в разделе 11.5.2.