Программа на языке С++ состоит из одной или нескольких функций.
Функция – это логически самостоятельная именованная часть программы, которой могут передаваться параметры и которая может возвращать какое-то значение.
Все функции в языке С++ имеют рекомендуемый стандартами языка единый формат определения:
тип имя_функции ([спецификация параметров])
{
тело функции
[return;]
}
Первая строка – это, по существу, заголовок функции, который отличается от ее прототипа только отсутствием точки с запятой в конце и обязательным присутствием имен формальных параметров.
Здесь тип либо void (для функций, не возвращающих значения), либо обозначение типа возвращаемого функцией значения с помощью оператора return.
Имя_функции либо main – для основной (главной) функции программы, либо произвольно выбираемое программистом имя (идентификатора), не совпадающее со служебными словами и с именами других объектов (и функций) программы.
Спецификация_параметров – это либо пусто, либо список формальных параметров, каждый элемент которого имеет вид:
обозначение_типа имя_параметра
Если в функцию передается несколько параметров, то они разделяются запятой. В списке параметров для каждого аргумента должен быть указан тип.
Тело_функции - это часть определения функции, ограниченная фигурными скобками и состоящая из операторов языка С++. Особенность языка С++ состоит в невозможности внутри тела функции определить другую функцию. Другими словами, определения функций не могут быть вложенными.
Обязательным, но не всегда явно используемым оператором тела функции, является оператор возврата из функции в точку вызова, имеющий две формы:
return;
return выражение;
Первая форма соответствует завершению функции, не возвращающей никакого значения, т.е. функции, перед именем которой в ее определении указан тип void. Выражение во второй форме оператора return должно иметь тип, указанный перед именем функции в ее определении.
Если программист не использовал оператор return внутри тела функции, возвращающей значение типа void, то компилятор автоматически добавляет оператор return в конец тела функции перед закрывающейся фигурной скобкой “}”.
Пример определения функции, возводящей число d в степень s:
float step ( float d, int s)
{
float rez=1;
for (int i=1; i <= s; i++)
rez *= d; // rez = rez*d
return (rez);
}
Встретив определение функции, компилятор создает самостоятельную секцию кода программы, которая на этапе компоновки объединяется с другими функциями.