Определение функции. Определение функции имеет следующий формат

Определение функции имеет следующий формат:

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

{

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

};

В качестве имени функции (имя_функции) может использоваться любой допустимый идентификатор. Типом результата, возвращаемого вызывающей функции, является тип_возвращаемого_значения. Если тип_возвращаемого_значения задан ключевым словом void, то это означает, что функция ничего не возвращает. Если тип_возвращаемого_значения не указан, то компилятор будет предполагать тип int.

Если тип_возвращаемого_значения в определении функции опущен, то это вызовет синтаксическую ошибку в том случае, если прототип функции определяет, что возвращаемый тип не является целым (int).

Если функция должна возвращать некоторое значение, а в функции опущен оператор возврата, то это может привести к непредвиденным ошибкам. Стандарт ANSI гласит, что в этом случае результат не определен. Возврат значения из функции, для которой возвращаемый тип был объявлен как void, вызывает синтаксическую ошибку. Хотя опущенный возвращаемый тип по умолчанию расценивается как int, всегда задавайте возвращаемый тип явным образом. Однако для функции main возвращаемый тип обычно опускается.

Список_параметров – это список объявлений параметров (отделенных запятыми), получаемых функцией при ее вызове. Если функция не получает значения, список_параметров обозначается ключевым словом void. Тип каждого параметра должен быть указан явно за исключением параметров типа int. Если тип параметра не указан, то по умолчанию принимается тип int.

Замечания:

1. Ошибкой является запись float x, у вместо float x, float у при объявлении параметров функции, относящихся к одному типу. Такое объявление параметров, как float x, у фактически присвоило бы параметру у тип int, поскольку int принимается по умолчанию.

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

3. Повторное определение параметра функции как локальной переменной внутри функции – синтаксическая ошибка.

4. Объявления и операторы внутри фигурных скобок образуют тело функции. Тело функции называют блоком. Блок – это просто составной оператор, который включает в себя объявления. Переменные могут быть объявлены в любом блоке, а блоки могут быть вложены. В любом случае функция не может быть определена внутри другой функции. Определение функции внутри другой функции – синтаксическая ошибка.

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

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

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

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

return;

Если функция возвращает результат, применяется оператор:

return выражение;

который возвращает вызывающей функции значение выражения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: