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

 

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

// вычисляет квадраты целых чисел от 1 до 10.

 

#include "stdafx.h"

#include <iostream>

using namespace std;

 

int square(int); //Прототип функции

 

int _tmain(int argc, _TCHAR* argv[])

{

for (int x=1; x<=10; x++)

{

cout <<square(x) <<" ";

}

cout <<endl;

return 0;

}

//Описание функции

int square(int y)

{

return y*y;

}

 

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

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

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

 

Строка

int square (int);

 

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

 

 

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

 

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

{

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

}

 

 

Имя функции – любой правильно написанный идентификатор.

Тип- возвращаемого-значения – это тип данных результата, возвращаемого из функции оператору её вызова. Тип возвращаемого значения void указывает, что функция не возвращает никакого значения. Компилятор предполагает тип int для неопределенного типа возвращаемого значения.

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

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

!!!При любых обстоятельствах функция не может быть описана внутри другой функции.