Вход/Регистрация
Язык программирования Си для персонального компьютера
вернуться

Субботин Д. М.

Шрифт:

Нельзя с помощью оператора goto передать управление на конструкции case и default в теле переключателя.

Пример:

if(errorcode > 0) goto exit;

…

exit: return (errorcode);

В примере оператор перехода goto передает управление на оператор, помеченный меткой exit, если errorcode больше нуля.

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

Синтаксис:

return [<выражение>];

Действие:

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

Пример:

main

{

void draw(int, int);

long sq(int);

у = sq(x);

draw(x, y);

}

long sq(int x)

{

return (x*x);

}

void draw(int x, int y)

{

return,

}

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

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

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

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

ФУНКЦИИ

Введение

Функция — это совокупность объявлений и операторов, предназначенная для выполнения некоторой отдельной задачи. Количество функций в программе не ограничивается. Любая программа на языке Си содержит, по крайней мере, одну функцию, так называемую главную функцию, с именем main. В данном разделе описывается, как определять, объявлять и вызывать функции в языке Си.

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

Объявление функции задает имя и тип возвращаемого значения функции, явное определение которой приведено в другом месте программы. В объявлении функции могут быть также специфицированы класс памяти, число аргументов функции и их типы. Прототип функции (версия 5.0 СП MSC и СП ГГС) позволяет, помимо того, задавать в объявлении идентификаторы и класс памяти аргументов. Это позволяет компилятору сравнивать при вызове типы фактических аргументов и формальных параметров функции.

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

Вызов функции передает управление от вызывающей функции к вызываемой. Значения фактических аргументов, если они есть, передаются в вызываемую функцию. При выполнении оператора возврата return в вызываемой функции управление и возвращаемое значение (если оно есть) передаются в вызывающую функцию.

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

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

[<спецификация КП>][<спецификация типа>]

<описатель> ([<список объявлений параметров>]) <тело функции>

  • Читать дальше
  • 1
  • ...
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: