Смекни!
smekni.com

необ

список-параметров:

идетификатор

идентификатор , список-параметров

тело-функции:

список-описаний-типа оператор-функции

оператор-функции:

\(список описаний список-операторов\)

необ

определение данных:

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 &bsol;(RED, WHITE, BLACK, BLUE &bsol;);

. . .

ENUM COLOR *CP, COL;

Объявляет идентификатор COLOR ярлыком перечисления типа,

описывающего различные цвета и затем объявляет CP указателем

на объект этого типа, а COL - объектом этого типа.

Идентификаторы в списке-перечисления описываются как

константы и могут появиться там, где требуются (по контекс-

ту) константы. Если не используется вторая форма перечисляе-

мого (с равеством =), то величины констант начинаются с 0 и

возрастают на 1 в соответствии с прочтением их описания сле-

ва на право. Перечисляемое с присвоением = придает соответс-

твующему идентификатору указанную величину; последующие

идентификаторы продолжают прогрессию от приписанной величи-

ны.

Все ярлыки перечисления и константы могут быть различны-

ми и непохожими на ярлыки и члены структур даже при условии

использования одного и того же множества идентификаторов.

Объекты данного типа перечисления рассматриваются как

объекты, имеющие тип, отличный от любых типов и контролирую-

щая программа LINT сообщает об ошибках несоответствия типов.

В реализации на PDP-11 со всеми перечисляемыми переменными

оперируют так, как если бы они имели тип INT.

29. Таблица изображений непечатных символов языка “C”.

В данной таблице приведены изображения некоторых симво-

лов (фигурные скобки и т.д.) языка “C”, которых может не

оказаться в знаковом наборе дисплея или печатающего устройс-

тва.

· 231 -

! Значение ! Изображение ** !

! ! В тексте !

! Фигурная открывающаяся ! !

! Скобка ! &bsol;( !

! ! !

! Фигурная закрывающаяся ! !

! Скобка ! &bsol;) !

! ! !

! Вертикальная ! !

! Черта ! &bsol;! !

! ! !

! ! !

! Апостороф ! &bsol;' !

! ! !

! Волнистая ! !

! Черта ! &bsol;^ !

! ! !

** П_р_и_м_е_ч_а_н_и_е:

Изображения приведены для операционой системы UNIX. При

работе компилятора “C” под управлением любой другой операци-

онной системы, необходимо воспользоваться соответствующим

руководством для данной системы.