26.3. Операторы
составной-оператор:
\(список-описаний список-операторов
необ необ\)
список-описаний:
описание
описание список-описаний
список-операторов:
оператор
оператор список-операторов
оператор:
составной оператор
выражение;
· 227 -
IF (выражение) оператор
IF (выражение) оператор ELSE оператор
WHILE (выражение) оператор
DO оператор WHILE (выражение);
FOR(выражение-1 ;выражение-2 ;выражение-3 )
необ необ необ
оператор
SWITCH (выражение) оператор
CASE константное-выражение : оператор
DEFAULT: оператор
BREAK;
CONTINUE;
RETURN;
RETURN выражение;
GOTO идентификатор;
идентификатор : оператор
;
26.4. Внешние определения Программа:
внешнее-определение
внешнее-определение программа
внешнее-определение:
определение-функции
определение-данных
определение-функции:
спецификатор-типа описатель-функции тело-функции
необ
описатель-функции:
описатель (список-параметров )
необ
список-параметров:
идетификатор
идентификатор , список-параметров
тело-функции:
список-описаний-типа оператор-функции
оператор-функции:
\(список описаний список-операторов\)
необ
определение данных:
EXTERN спецификатор типа список
необ необ
инициализируемых описателей ;
необ
STATIC спецификатор типа список
необ необ
инициализируемых описателей
необ;
26.5. Препроцессор #DEFINE идентификатор строка-лексем #DEFINE
· 229 -
#DEFINE идентификатор(идентификатор,...,идентификатор)стр
#UNDEF идентификатор
#INCLUDE “имя-файла”
#INCLUDE <имя-файла>
#IF константное-выражение
#IFDEF идентификатор
#IFNDEF идентификатор
#ELSE
#ENDIF
#LINE константа идентификатор
Последние изменения языка “C” (15 ноября 1978 г.)
27. Присваивание структуры
Структуры могут быть присвоены, переданы функциям в ка-
честве аргументов и возвращены функциям. Типы участвующих
операндов должны оставаться теми же самыми. Другие правдопо-
добные операторы, такие как сравнение на равенство, не были
реализованы.
В реализации возвращения структур функциями на PDP-11
имеется коварный дефект: если во время возврата происходит
прерывание и та же самая функция пеентерабельно вызывается
во время этого прерывания, то значение возвращаемое из пер-
вого вызова, может быть испорчено. Эта трудность может воз-
никнуть только при наличии истинного прерывания, как из опе-
рационной системы, так и из программы пользователя, прерыва-
ния, которое существенно для использования сигналов; обычные
рекурсивные вызовы совершенно безопасны.
28. Тип перечисления
Введен новый тип данных,аналогичный скалярным типам язы-
ка паскаль. К спецификатору-типа в его синтаксическом описа-
нии в разделе 8.2. Приложения а следует добавить
спецификатор-перечисления
с синтаксисом
пецификатор-перечисления:
ENUM список-перечисления
ENUM идентификатор список-перечисления
------------- -------------------
ENUM идентификатор
· 230 -
cписок-перечисления:
перечисляемое
список-перечисления, перечисляемое
------------------- -------------
перечисляемое:
идентификатор
идентификатор = константное выражение
------------- ---------------------
Роль идентификатора в спецификаторе-перечисления пол-
ностью аналогична роли ярлыка структуры в спецификато-
ре-структуры; идентификатор обозначает определенное перечис-
ление. Например, описание
ENUM COLOR \(RED, WHITE, BLACK, BLUE \);
. . .
ENUM COLOR *CP, COL;
Объявляет идентификатор COLOR ярлыком перечисления типа,
описывающего различные цвета и затем объявляет CP указателем
на объект этого типа, а COL - объектом этого типа.
Идентификаторы в списке-перечисления описываются как
константы и могут появиться там, где требуются (по контекс-
ту) константы. Если не используется вторая форма перечисляе-
мого (с равеством =), то величины констант начинаются с 0 и
возрастают на 1 в соответствии с прочтением их описания сле-
ва на право. Перечисляемое с присвоением = придает соответс-
твующему идентификатору указанную величину; последующие
идентификаторы продолжают прогрессию от приписанной величи-
ны.
Все ярлыки перечисления и константы могут быть различны-
ми и непохожими на ярлыки и члены структур даже при условии
использования одного и того же множества идентификаторов.
Объекты данного типа перечисления рассматриваются как
объекты, имеющие тип, отличный от любых типов и контролирую-
щая программа LINT сообщает об ошибках несоответствия типов.
В реализации на PDP-11 со всеми перечисляемыми переменными
оперируют так, как если бы они имели тип INT.
29. Таблица изображений непечатных символов языка “C”.
В данной таблице приведены изображения некоторых симво-
лов (фигурные скобки и т.д.) языка “C”, которых может не
оказаться в знаковом наборе дисплея или печатающего устройс-
тва.
· 231 -
! Значение ! Изображение ** !
! ! В тексте !
! Фигурная открывающаяся ! !
! Скобка ! \( !
! ! !
! Фигурная закрывающаяся ! !
! Скобка ! \) !
! ! !
! Вертикальная ! !
! Черта ! \! !
! ! !
! ! !
! Апостороф ! \' !
! ! !
! Волнистая ! !
! Черта ! \^ !
! ! !
** П_р_и_м_е_ч_а_н_и_е:
Изображения приведены для операционой системы UNIX. При
работе компилятора “C” под управлением любой другой операци-
онной системы, необходимо воспользоваться соответствующим
руководством для данной системы.
... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...
... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...
... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...
... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...
0 комментариев