Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по С Живицкая (Мет пособие).doc
Скачиваний:
112
Добавлен:
15.06.2014
Размер:
2.11 Mб
Скачать

2.5.1.Вызов функции. Использование вызывающей функции. Обращение к вызывающей функции.

Обращение к функции – это указание ее имени с обязательными круглыми скобками в которых возможен список аргумента.

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

Обращение к функции – это выражение, оно может быть использовано везде, где допускается выражение.

Пример:

c = fun ( a,b ) + 5;

Здесь fun ( a, b,) – это обращение к функции fun оно используется, как выражение в правой части оператора присваивания.

Пример:

printf ( " % d "; fun ( a,b ) );

Здесь обращение к функции fun используется, как выражение и обращение к функции printf. Обращение к функции – это оператор

Пример:

fun(a,b);

Круглые скобки после имени функции обязательны, даже если функция не содержит аргумента. Список аргументов в обращении указывается только тогда, когда онпредусмотрен конкретной функцией. В том же блоке вызывающей функции, где есть обращение к вызываемой функции должно быть описание типа вызываемой функции, т.е. тип возвращаемого значения функции всегда описывается в 2-х разных местах. В вызывающей функции, чтобы определить, какой тип ожидается от вызываемой функции в заголовке функции, чтобы сказать какой тип будет возвращать функции. По умолчанию при вызове неописанной функции возвращается значение типа int. Объявление функции имеет вид.

Описатель _ типа имя функции ( );

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

Указание пустых круглых скобок ( ) в объявлении функции обязательно, даже если функция не имеет аргументов. При вызове функции могут иметь места 4-е случая:

1) В вызываемую функцию не передается никакая информация, в вызывающую функцию никакая информауия не возвращается.

Обращение к функции имеет вид:

имя функции ( );

В данном случае обращение к функции является оператор.

При этом выполняются следующие шаги:

1.1. Управление передается функции, имя которой указано в обращении.

1.2. Выполняются операторы тела функции.

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

2). В вызывающую функцию не передается никакая информация, в вызывающую функцию передается вычисленное значение.

Обращение к функции

имя функции ( )

и используется, как выражение.

2.1 В управление передается фукция, имя которой указано в обращении.

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

2.3 Управление предается в вызывающую функцию на место обращения к функции. Сюда не передается значение вычисленное в вызываемой функции, и указанное в операторе return.

3) В вызываемую функцию передается информация в виде значений аргумента. В вызывающую функцию никакое значение не возвращается.

Обращение к функции:

имя _ функции ( аргумент 1, аргумент 2 ... )

Здесь обращение к функции является оператором, при этом выполняются следующие шаги.

3.1 Считывается или вычисляется значение аргумента.

3.2 Управление передается в функции, имя которой указано в обращении.

3.3 Значения аргумента передается параметром при этом не производится никаких проверок соответствия типов аргументов и параметров. Не проверяется также соответствие числа аргументов передаваемых функции числу параметров.

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

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

Обращение к функции:

имя функции ( аргумент 1, аргумент 2, ... )

Здесь обращение является выражением.

Вызов функции сводится к выполнению следующих шагов:

4.1 Считываются или вычисляются значения аргументов.

4.2 Управление передается функции, имя которой указано в обращении.

4.3 Значения аргумента присваиваются последовательно параметрам, начиная с первого. При этом не производится никаких проверок соответствия типов и числа аргументов и параметров.

4.4 Вызываемая функция выполняется последовательно оператор за оператором до тех пор, пока не встретится оператор return содержащий возвращаемое значение ввиде скалярного выражения. Вычисляется выражение оператора return.

4.5 Управление передается в вызывающую функцию на место обращения к функции. Сюда передается значение вычисленное вызываемой функцией в операторе return.