Введение в мир функций. Необходимость использования. Объявление. Вызов.
Зачастую складывается такая ситуация, когда в нашей программе некоторые
отрезки кода повторяются несколько раз и нам приходится много раз подряд
набирать один и тот же фрагмент кода. Такая ситуация имеет свои отрицательные
стороны. Во-первых, процесс создания программы становится более нудным и
длительным, во-вторых, увеличивается объем конечного файла. Как быть в этом
случае?! Существует ли какой-нибудь механизм позволяющий автоматизировать
действия программиста и сократить код программы?! Да, существует, - отвечаем вам
мы. Называется такой механизм - функцией. Итак:
Функция - специальная конструкция, с помощью которой
какой-либо фрагмент кода повторяющийся в программе два или более раз выносится
за тело программы. Этот фрагмент получает собственное имя и, в дальнейшем, для
того, чтобы воспользоваться вынесенным кодом, необходимо будет указать это
имя.
Синтаксис объявления
Существует два способа объявления функции:
- Функция объявляется до функции main.
- Функция объявляется с помощью прототипа, а после функции main, описывается
тело объявленной функции.
Первый способ: до функции main.
Общий синтаксис объявления функции:
возвращаемое_значение имя_функции (параметры)
{
блок_повторяющегося_кода (тело);
}
|
1. Имя функции подчиняется тем же правилам, что и имя переменной и,
естественно, выбирается программистом.
2. Параметры - входные данные, которые необходимы функции для работы над
кодом. В качестве параметров используют обычные переменные, указывая для каждого
параметра его тип данных. Если функция не нуждается во входных данных, скобки
следует оставить пустыми. Второе название параметров - аргументы.
3. Возвращаемое значение - результат работы функции. На место возвращаемого
значения подставляется любой из базовых типов. Это тип тех данных, которые
функция поставит на место своего вызова в программе. Если функция ничего не
возвращает, на место возвращаемого значения подставляется
void(пусто). В общем и целом "осмысленное" возвращаемое значение
указывается в том случае, если результат работы функции необходим для дальнейших
вычислений.
Примечание: Нельзя создавать одну функцию внутри
другой.
Примечание: Нельзя вызвать функцию до ее
объявления.
Синтаксис вызова функции.
Чтобы воспользоваться функцией на определенном отрезке кода, следует вызвать
ее прямо на этом отрезке. Вызов функции является предписанием операционной
системе начать выполнение фрагмента кода, который содержится в теле функции. По
завершении выполнения функции, программа должна продолжить работу в основном
коде с того же места, где была вызвана функция. Вызов функции состоит из
указания имени функции, передачи аргументов (если таковые имеются) и получения
возвращаемого значения ( если есть необходимость его получать):
имя_переменной=имя_функции(параметр1, параметр2,...., параметрN); |
1. Типы данных значений должны соответствовать типам данных аргументов в
определении функции. Исключением являются случаи, когда передаваемое значение
может быть с легкостью преобразовано к нужному типу.
2. При вызове функции всегда необходимо указывать такое количество
параметров, какое было определено при объявлении.
3. Тип переменной, в которую запишется возвращаемое значение, должен
совпадать с тем типом, который функция, собственно, возвращает. Это не
обязательно, но желательно.
Ключевое слово return
Для возвращения Значения из функции в программу на то место, из которого была
вызвана эта функция, используется оператор return. Синтаксис
возврата таков:
Если функция не возвращает никаких значений, то оператор return
можно использовать просто для остановки функции, для этого просто пишем:
return; // в данном случае return отработает для функции, как break для цикла.
|
Запомните важные моменты обращения с return:
1. Операторов возврата может быть несколько (в зависимости от ситуации), но
отработает только один из них.
2. Если сработал return (вне зависимости от формы), все что расположенно в
функции ниже него уже не отработает.
3. Если тип возвращаемый функцией не void, то необходимо ВСЕГДА
использовать форму: return значение;