Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_Функции.doc
Скачиваний:
4
Добавлен:
10.02.2015
Размер:
235.52 Кб
Скачать

3.2 Правила вызова функций. Программы

Для исполнения ранее определенной функции необходимо поместить в текст программы соответствующее указание, которое называется вызовом функции. Эта операция имеет второй приоритет, а ее результатом является возвращаемое значение функции. С точки зрения синтаксиса, вызов функции должен содержать ее имя и круглые скобки с объектами, для которых нужно вычислить значение функции. Эти объекты называются фактическими параметрами функции. При вызове функции их можно задать непосредственно, используя правила представления объектов соответствующих типов, или с помощью имен, или выражений. В приводимом ниже операторе-выражении используются все три перечисленных формы задания фактических параметров. Для этого применяются функция Max(), определенная в примере 3.1, и стандартная функция sqrt() вычисления квадратного корня.

double x=333.0, y, z;

z=sqrt(2.0)+Max(x, sqrt(Max(0.0, y)+33.0);

Правила языка требуют, чтобы программист заранее (до первого вызова) сообщал компилятору о каждой используемой в программе функции. Такое предупреждение называется прототипом или объявлением функции. Оно состоит из типа возвращаемого значения, имени функции, круглых скобок с типами формальных параметров и точки с запятой. Кроме идентификаторов типов в круглых скобках разрешается указывать имена формальных параметров. Обычным местом размещения прототипов является начало программы. Для определенной выше функции Max() ее прототип имеет следующий вид:

double Max(double, double);

// Или по-другому

double Max(double x1, double x2);

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

Прототипы стандартных функций хранятся в нескольких файлах с расширением .h (от слова head). Например, в файл с именем math.h сгруппированы прототипы функций для вычисления значений элементарных математических функций, а в файл с именем stdio.h – прототипы функций ввода-вывода. При использовании стандартной функции программист должен добавить файл с ее прототипом к тексту своего приложения. Для этого служит команда компилятору следующего вида

#include <Имя_файла>

Она должна находится в тексте до первого вызова стандартной функции. Обычно, таких команд бывает несколько и они все размещаются в начале программы. Например, чтобы воспользоваться стандартной функцией sqrt() для вычисления квадратного корня необходимо включить в текст приложения команду

#include <math.h>

Отметим, что командой include можно добавить к тексту приложения содержимое любого файла. В этом случае после идентификатора include в кавычках указывается путь к файлу и его имя.

Программой или приложением на языке Си, по определению, называется совокупность функций, содержащая функцию с именем main, которая называется главной. Именно с вызова (исполнения) этой функции операционная система начинает выполнение любой программы. Остальные функции вызываются из главной функции и друг из друга в порядке, который определяется программой. Завершение правильно написанной программы происходит так же в главной функции. Таким образом, самой короткой программой является функция вида