Тема 5 Функции
Функция – это самостоятельная поименованная часть программы, которая может получать аргументы и может возвращать вычисленное в ней значение.
Разделение программы на функции позволяет избежать избыточности кода, так как функцию записывают один раз, а вызывать её на выполнение можно многократно из разных точек программы. Разработку программы, содержащей функции, можно поручить группе программистов, а часто используемые функции помещать в библиотеки. Все это делает процессы разработки, отладки и сопровождения программ более эффективными и управляемыми.
Любая программа на С++ состоит из функций, одна из которых должна иметь имя main (именно с неё начинается выполнение программы).
Любая функция должна быть объявлена и определена. Как и для других величин, объявлений может быть несколько, а определение только одно. Выполнение функции начинается в момент её вызова.
Таким образом, в работе с функцией существует 3 ключевых момента: · объявление; · вызов; · определение. |
Объявление функции (синонимы – прототип, заголовок, сигнатура) задает её имя, тип возвращаемого значения и список передаваемых параметров. Оно должно находиться в тексте раньше её вызова для того, чтобы компилятор мог осуществить проверку правильности вызова.
Тип ИмяФункции (список_параметров);Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:
Тип ИмяФункции (список_параметров){// тело функции}Рассмотрим составные части определения.
- Тип возвращаемого функцией значения может быть любым, кроме массива и функции (но может быть указателем на массив или функцию). Если функция не должна возвращать значение, указывается тип void.
- Список параметров (или формальных параметров) определяет величины, в которых хранятся значения аргументов (или фактических параметров), передаваемых в функцию при её вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя (в объявлении имена можно опускать).
В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать! На имена параметров ограничений по соответствию не накладывается.
Тип возвращаемого значения и типы параметров совместно определяют тип функции.
Для вызова функции в простейшем случае нужно указать её имя, за которым в круглых скобках через запятую перечисляются имена передаваемых аргументов.
Пример функции, возвращающей сумму двух целых величин:
#include <stdio.h> int Sum (int x, int y); // объявление функции//-------------------------------------------------------------------- void main(){ int A, B, C;printf (“\n Введите A ”);
scanf (“%d”, &A);
printf (“\n Введите B ”);
scanf (“%d”, &B);
C = Sum (A, B); //вызов функцииprintf (“\n Сумма %d и %d равна %d”, A, B, C);
getch ();}//-------------------------------------------------------------------- int Sum (int x, int y) // определение функции{ return x + y;}Вызов функции располагается в правой части оператора присваивания, поэтому возвращаемое функцией значение присваивается переменной С.