logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

3.5 Определения функций

Каждая программа, которую мы рассматривали, содержала функцию, называемую main, которая вызывает стандартные библиотечные функции для выполнения соответствующих им задач. Теперь мы рассмотрим, как про­граммисты пишут свои собственные необходимые им функции. Рассмотрим программу, которая использует функцию square для вычисления квадратов целых чисел от 1 до 10 (рис. 3.3).

Хороший стиль программирования 3.3

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

Функция square активизируется или вызывается в main вызовом

square(х)

функции _ 183

Функция создает копию значения x в параметре у. Затем square вы­числяет у * у. Результат передается в ту точку main, из которой была вы­звана square, и затем этот результагвыводится на экран. Благодаря структуре повторения for этот процесс повторяется десять раз.

Описание square показывает, что эта функция ожидает передачи в нее целого параметра у. Ключевое слово int, предшествующее имени функции, указывает, что square возвращает целый результат. Оператор return в square передает результат вычислений обратно в вызывающую функцию.

i // функция square, определяемая программистом

#include <iostream.h> '"_t int square(int); // прототип функции

' main() .. i

. , {

,' for (int x = 1; x <= 10; x++}

x cout « square{x) « " ";

*-" cout « endl ; ~'''

,,, return 0;

/I описание функции int square(int у) {

return у * у;

1 4 9 16 25 36 49 64 81 100

Рис. 3.3. Использование функции, определенной программистом

Строка

int square(int);

является прототипом функции. Тип данных int в круглых скобках указывает компилятору, что функция square ожидает в операторе вызова целое значение аргумента. Тип данных int слева от имени функции square указывает компи­лятору, что square возвращает оператору вызова целый результат. Компилятор обращается к прототипу функции для проверки того, что вызовы функции square содержат правильный возвращаемый тип, правильное количество ар­гументов, правильный тип аргументов и правильный порядок перечисления аргументов. Прототипы функций детально обсуждаются в разделе 3.6.

Формат описания функции имеет вид

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

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