Назад | Оглавление | Далее |
Синтаксис:
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.
Распространенной ошибкой является наличие в функции, которая должна возвращать значение, операторов возврата как с выражением, так и без него.
Назад | Оглавление | Далее |