Читайте также:
|
|
В языке С понятия процедуры нет, существует только понятие функции. Если не требуется после выполнения последовательности операторов возвращать какое-либо значение, то функция имеет тип void. Функции (кроме функций имеющих тип void), могут использоваться во всех случаях, что и переменные, за исключением левой части оператора присваивания.
Любая программа на языке С состоит из функций. Любая функция должна быть объявлена и определена. Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит кроме объявления, тело функции, представляющее собой последовательность операторов. Объявление функции должно находится в тексте программы раньше ее вызова, а определение может находиться как до (в этом случае не делается отдельного объявления), так и после ее вызова. В языке С описание функции не может быть находится в теле какой-либо другой функции, то есть не может быть локальным. Однако, в других языках программирования, например, в Pascal, функции могут быть вложенными.
Таким образом, схема описания функций в программе на языке C представляется следующими двумя способами:
1.
объявление функции f1
….
объявление функции fn
определение главной функции main
определение функции f1
…..
определение функции fn
Причем любая из функций fi может быть вызвана любой функцией fj и функцией main
2.
определение функции f1
…..
определение функции fn
определение главной функции main
Причем любая из функций fi может быть вызвана функцией fj, где j>=i и функцией main
Выбор одного из способов во многом определяется стилем написания программ конкретного программиста.
Синтаксис определения функции в языке С:
[класс памяти] тип имя_функции ([список параметров]) [throw (исключения)]
{тело функции}
Класс памяти функции задает область действия функции. Для задания класса памяти допустимы только спецификаторы extern и static. Static указывает на то, что область действия функции с момента объявления и до конца файла, где она объявлена, extern - на то, что область действия функции во всех модулях, где она объявлена. По умолчанию – static.
Тип функции может быть любым кроме массива и функции (но может быть указателем на массив или функцию), может быть void.
Список параметров определяет величины, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра указывается тип и имя (в объявлении имя не обязательно). Параметры, перечисляемые в заголовке функции, называются формальными, а параметры, записанные в операторе вызова функции, называются фактическими. В объявлении и определении одной функции типы и порядок следования параметров должны совпадать.
Например,
void vivod (int); // объявление функции
void vivod (int a) {printf(“%40d”,a;)} // определение функции
vivod (50); // вызов функции
Дата добавления: 2015-11-30; просмотров: 41 | Нарушение авторских прав