Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование 1 к ПОВТ.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
1.14 Mб
Скачать

4. Описание пользовательских подпрограмм-функций

Несмотря на то, что в языке С имеется много стандартных функций, часто возникает необходимость создавать свои собственные. Функцией называется фрагмент программы, в который передаются ПАРАМЕТРЫ, и который ВОЗВРАЩАЕТ значение. Прелесть функции в том, что ее можно выполнить много раз из разных точек программы. Функции дают удобный способ заключения некоторой части вычислений в черный ящик, который в дальнейшем можно использовать, не интересуясь его внутренним содержанием. Использование функций является фактически единственным способом справиться с потенциальной сложностью больших программ. Если функции организованы должным образом, то можно игнорировать то, как делается работа; достаточно знание того, что делается. Язык С разработан таким образом, чтобы сделать использование функций легким, удобным и эффективным. Вам будут часто встречаться функции длиной всего в несколько строчек, вызываемые только один раз, и они используются только потому, что это проясняет некоторую часть программы. До сих пор мы использовали только предоставленные нам функции типа sqrt, sin; теперь пора написать несколько наших собственных.

Функция C по структуре подобна программе main, которую вы использовали во всех предыдущих программах. Другими словами, имя функции предваряется ее типом, а за ним следует список параметров, описание которых появляется в скобках. Вы группируете операторы функций внутри левой и правой фигурных скобок, как показано ниже:

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

{

объявления_переменных; операторы;

}

Пример:

void MyFunction (void)

{

/*

………………..

*/

}

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

Вы может, как передаватьзначения в вашу функцию, так и возвращать значения из нее. Для этого надо указать входные переменные и тип результат :

int MyFunction (int a,int b,double f)

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

Result =MyFunction(a,b,f);

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

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

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