|
Программирование >> Перегруженные имена функций и идентификаторы
Такие операторы, как do, for, if, while, требуют, чтобы в теле оператора был хотя бы один оператор. Оператор null удовлетворяет требованиям синтаксиса в случаях, когда не требуется тела оператора. В приведенном примере третье выражение оператора for инициализирует первые 10 элементов массива line нулем. Тело оператора включает оператор null, т.к. нет необходимости в других операторах. Помеченный оператор null Оператор null, подобно любому другому Си оператору, может быть помечен меткой. Чтобы пометить объект, который не является оператором, такой как закрывающаяся фигурная скобка составного оператора, можно вставить перед объектом помеченный оператор null. Оператор return Синтаксис: return [<expression>]; Оператор return заканчивает выполнение функции, в которой он появляется, и возвращает управление в вызывающую функцию. Управление передается в вызывающую функцию в точку, непосредственно следующую за вызовом. Значение выражения <expression>, если оно есть, возвращается в вызывающую функцию. Если выражение <expression> опущено, то возвращаемая функцией величина не определена. Пример: main () void draw (int,int); long sq (int); y=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 возвращает значение x*x в main. Величина возврата присваивается переменной y. Функция draw объявляется как функция void и не возвращает значения. Попытка присвоить возвращаемое значение функции draw привело бы к ошибке. Выражение <expression> оператора return заключено в скобки, как показано в примере. Язык не требует скобок. Отсутствие оператора return Если оператор return не появился в определении функции, то управление автоматически передается в вызывающую функцию после выполнения последнего оператора в вызванной функции. Значение возврата вызванной функции при этом не определено. Если значение возврата не требуется, то функция должна быть объявлена с типом возврата void. Оператор switch Синтаксис: switch (<expression>) [<declaration>] [case <constant-expression>:] [<statement>] [default: <statement>] [case <constant-expression>:] [<statement>] Оператор switch передает управление одному из операторов <statement> своего тела. Оператор, получающий управление, - это тот оператор, чье case-константное выражение <constant-expression> равно значению switch-выражения <expression> в круглых скобках. Выполнение тела оператора начинается с выбранного оператора и продолжается до конца тела или до тех пор, пока очередной оператор <statement> передает управление за пределы тела. Оператор default выполнится, если case-константное выражение <constant-expression> не равно значению switch-выражения <expression>. Если default-оператор опущен, а соответствующий case не найден, то выполняемый оператор в теле switch отсутствует. Switch-выражение <expression> - это целая величина размера int или короче. Оно может быть также величиной типа enum. Если <expression> короче чем int, оно расширяется до int. Каждое case-константное выражение <constant-expression> преобразуется к типу switch-выражения. Значение каждого case-константного выражения должно быть уникальным внутри тела оператора. Case и default метки в теле оператора switch существенны только при начальной проверке, когда определяется стартовая точка для выполнения тела оператора. Все операторы появляющиеся между стартовым оператором и концом тела, выполняются, не обращая внимания на свои метки, если какой-то из операторов не передает управления из тела оператора switch.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |