#DEFINE идентификатор строка-лексем#DEFINE#DEFINE идентификатор(идентификатор,...,идентификатор)стр#UNDEF идентификатор#INCLUDE "имя-файла"#INCLUDE <имя-файла>#IF константное-выражение#IFDEF идентификатор#IFNDEF идентификатор#ELSE#ENDIF#LINE константа идентификатор Последние изменения языка "C" (15 ноября 1978 г.) 27. Присваивание структуры Структуры могут быть присвоены, переданы функциям в ка-честве аргументов и возвращены функциям. Типы участвующихоперандов должны оставаться теми же самыми. Другие правдопо-добные операторы, такие как сравнение на равенство, не былиреализованы. В реализации возвращения структур функциями на PDP-11имеется коварный дефект: если во время возврата происходитпрерывание и та же самая функция пеентерабельно вызываетсяво время этого прерывания, то значение возвращаемое из пер-вого вызова, может быть испорчено. Эта трудность может воз-никнуть только при наличии истинного прерывания, как из опе-рационной системы, так и из программы пользователя, прерыва-ния, которое существенно для использования сигналов; обычныерекурсивные вызовы совершенно безопасны. 28. Тип перечисления Введен новый тип данных,аналогичный скалярным типам язы-ка паскаль. К спецификатору-типа в его синтаксическом описа-нии в разделе 8.2. Приложения а следует добавить спецификатор-перечисления ------------------------- с синтаксисом пецификатор-перечисления:-------------------------ENUM список-перечисления -------------------ENUM идентификатор список-перечисления ------------- -------------------ENUM идентификатор -------------cписок-перечисления:-------------------перечисляемое-------------список-перечисления, перечисляемое------------------- -------------перечисляемое:-------------- идентификатор ------------- идентификатор = константное выражение ------------- --------------------- Роль идентификатора в спецификаторе-перечисления пол-ностью аналогична роли ярлыка структуры в спецификато-ре-структуры; идентификатор обозначает определенное перечис-ление. Например, описание ENUM COLOR \(RED, WHITE, BLACK, BLUE \); . . . ENUM COLOR *CP, COL; Объявляет идентификатор COLOR ярлыком перечисления типа,описывающего различные цвета и затем объявляет CP указателемна объект этого типа, а COL - объектом этого типа. Идентификаторы в списке-перечисления описываются какконстанты и могут появиться там, где требуются (по контекс-ту) константы. Если не используется вторая форма перечисляе-мого (с равеством =), то величины констант начинаются с 0 ивозрастают на 1 в соответствии с прочтением их описания сле-ва на право. Перечисляемое с присвоением = придает соответс-твующему идентификатору указанную величину; последующиеидентификаторы продолжают прогрессию от приписанной величи-ны. Все ярлыки перечисления и константы могут быть различны-ми и непохожими на ярлыки и члены структур даже при условиииспользования одного и того же множества идентификаторов. Объекты данного типа перечисления рассматриваются какобъекты, имеющие тип, отличный от любых типов и контролирую-щая программа LINT сообщает об ошибках несоответствия типов.В реализации на PDP-11 со всеми перечисляемыми переменнымиоперируют так, как если бы они имели тип INT. 29. Таблица изображений непечатных символов языка "C". В данной таблице приведены изображения некоторых симво-лов (фигурные скобки и т.д.) языка "C", которых может неоказаться в знаковом наборе дисплея или печатающего устройс-тва.-------------------------------------------------! Значение ! Изображение ** !! ! В тексте !-------------------------------------------------! Фигурная открывающаяся ! !! Скобка ! \( !! ! !-------------------------------------------------! Фигурная закрывающаяся ! !! Скобка ! \) !! ! !-------------------------------------------------! Вертикальная ! !! Черта ! \! !! ! !-------------------------------------------------! ! !! Апостороф ! \' !! ! !-------------------------------------------------! Волнистая ! !! Черта ! \^ !! ! !------------------------------------------------- ** П_р_и_м_е_ч_а_н_и_е: Изображения приведены для операционой системы UNIX. Приработе компилятора "C" под управлением любой другой операци-онной системы, необходимо воспользоваться соответствующимруководством для данной системы.