Язык программирования C

Скачать в pdf «Язык программирования C»


Сама препроцессорная обработка выполняется в несколько логически последовательных этапов. В отдельных реализациях некоторые этапы объединены вместе.


1.    Прежде всего, комбинации из трех символов, описанные в разделе А. 12.1, заменяются их эквивалентами. Между строками исходного кода вставляются символы конца строки, если этого требует операционная система.


2.    Пары символов, состоящие из обратной косой черты с последующим символом конца строки, удаляются из текста; тем самым строки “склеиваются” (раздел А. 12.2).


3.    Программа разбивается на лексемы, разделенные символами пустого пространства. Комментарии заменяются единичными пробелами. Затем выполняются директивы препроцессора и макроподстановки (разделы А.12.3-А.12.10).


4.    Управляющие последовательности в символьных константах и строковых литералах (разделы А.2.5.2, А.2.6) заменяются символами, которые они обозначают. Строковые литералы, записанные вплотную, сцепляются (подвергаются конкатенации).


5.    Результат транслируется. Затем компонуются внешние связи с другими пршрам-мами и библиотеками посредством сбора всех необходимых программ и данных воедино, а также подключения ссылок на внешние функции и объекты к их определениям.

А. 12.1. Комбинации из трех символов


Множество символов, которыми набираются исходные тексты программ на С, содержится в семибитовом наборе ASCII, но является надмножеством инвариантного кодового набора ISO 646-1983 (ISO 646-1983 Invariant Code Set). Чтобы дать возможность профаммам пользоваться сокращенным набором символов, все перечисленные ниже комбинации трех символов при препроцессорной обработке заменяются на соответствующие им единичные символы. Замена выполняется до начала любой другой обработки.


?? =


#


??( [


??<


{


??/



??) ]


??>


}


?? 1


А


? ? !


?? —

Никакие другие замены, кроме указанных, не выполняются.

Скачать в pdf «Язык программирования C»