Книга: Язык Си - руководство для начинающих

Резюме: функции

Резюме: функции

1. Форма записи

Типичное определение функции имеет следующий вид:

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

описание аргументов

тело функции

Наличие списка аргументов и описаний не является обязательным. Переменные, отличные от аргументов, описываются внутри тела, которое заключается в фигурные скобки.

Пример:

diff(x, у)                 /* имя функции и список аргументов */

ini x, у;                 /* описание аргументов */

{                        /* начало тела функции */

int z;                /* описание локальной переменной */

z = х - у;return(z);

}                       /* конец тела функции */

II. Передача значений функции:

Аргументы используются для передачи значений из вызывающей программы и функцию. Если значения переменных а и b будут 5 и 2, то при вызове

с = diff(а,b);

осуществляется передача этих значений переменным х и у. Значения 5 и 2 называют ся фактическими аргументами, а переменные х и у, указанные в описании функции: diff( ) - формальными аргументами.

     Использование ключевого слова return позволяет передавать в вызывающую программу одно значение из вызываемой функции. В нашем примере переменной с присваивается значение переменной z, равное 3.

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

III. Тип функции

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

Пример

main( )

{

float q, x, duff( ); /* описание в вызывающей программе */

int n;

...

q = duff(х, n);

...

}

float duff(u, k); /* описание в определении функции */

float u;

int k;

{

float tor;

...

return(tor); /* возвращает значение типа float */

} 

Оглавление книги


Генерация: 0.720. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз