НазадОглавлениеДалее

5.13. Оператор возврата return

Синтаксис:
return[<выражение>];

Действие:
Оператор возврата return заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение <выражения>, если оно задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата return, и возвращается в вызывающую функцию. Если <выражение> опущено, то возвращаемое функцией значение не определено.

Пример:
main()
{
void draw(int, int);
long sq(int);
.
.
.
у=sq(x);
draw(x, y);
.
.
.
}
long sq(x)
int x;
{
return(x*x);
}
void draw(x, y)
int x, y;
{
.
.
.
return;
}

Функция main вызывает две функции, sq и draw. Функция sq возвращает значение квадрата х. Это значение присваивается переменной у. Функция draw объявлена с типом void, как не возвращающая значения. Попытка присвоить значение, возвращаемое функцией draw, привело бы к сообщению компилятора об ошибке.

<Выражение> в операторе возврата return принято заключать в скобки, как показано в примере. Это, однако, не является требованием языка.

Если оператор return отсутствует в теле функции, то управление автоматически передается в вызывающую функцию после выполнения последнего оператора в вызванной функции, т.е. по достижении последней закрывающей фигурной скобки. Возвращаемое значение вызванной функции в этом случае не определено. Если возвращаемое значение не требуется, то функцию следует явно объявлять с типом void.

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


НазадОглавлениеДалее