lec18
.pdfПример обработки текста программы препроцессором.
Стадии препроцессорной обработки.
Препроцессорная обработка включает несколько стадий выполняемых последовательно.
Iвсе системно - зависимые обозначения (например системно - зависимый индикатор конца строки) перекодируются в стандартные коды;
Стадии препроцессорной обработки.
Препроцессорная обработка включает несколько стадий выполняемых последовательно.
Iвсе системно - зависимые обозначения (например системно - зависимый индикатор конца строки) перекодируются в стандартные коды;
Iкаждая из пар символом ’\’ и "конец строки"вместе с пробелами между ними убираются, и тем самым следующая строка исходного текста присоединяется к строке, в которой находилась эта пара символов;
Стадии препроцессорной обработки.
Препроцессорная обработка включает несколько стадий выполняемых последовательно.
Iвсе системно - зависимые обозначения (например системно - зависимый индикатор конца строки) перекодируются в стандартные коды;
Iкаждая из пар символом ’\’ и "конец строки"вместе с пробелами между ними убираются, и тем самым следующая строка исходного текста присоединяется к строке, в которой находилась эта пара символов;
Iв тексте (точнее, в тексте каждой отдельной строки) распознаются директивы и лексемы препроцессора, а каждый комментарий заменяется заменяется одним символом пустого промежутка;
Стадии препроцессорной обработки.
Препроцессорная обработка включает несколько стадий выполняемых последовательно.
Iвсе системно - зависимые обозначения (например системно - зависимый индикатор конца строки) перекодируются в стандартные коды;
Iкаждая из пар символом ’\’ и "конец строки"вместе с пробелами между ними убираются, и тем самым следующая строка исходного текста присоединяется к строке, в которой находилась эта пара символов;
Iв тексте (точнее, в тексте каждой отдельной строки) распознаются директивы и лексемы препроцессора, а каждый комментарий заменяется заменяется одним символом пустого промежутка;
Iвыполняются директивы препроцессора и производятся макроподстановки;
Стадии препроцессорной обработки (продолжение).
Iэскейп - последовательности в символьных константах и символьных строках , например ’\n’, ’\xF 2’ заменяются на их эквиваленты (на соответствующие числовые коды);
Стадии препроцессорной обработки (продолжение).
Iэскейп - последовательности в символьных константах и символьных строках , например ’\n’, ’\xF 2’ заменяются на их эквиваленты (на соответствующие числовые коды);
Iсмежные символьные строки (строковые константы) конкатенируются т.е. соединяются в одну строку;
Стадии препроцессорной обработки (продолжение).
Iэскейп - последовательности в символьных константах и символьных строках , например ’\n’, ’\xF 2’ заменяются на их эквиваленты (на соответствующие числовые коды);
Iсмежные символьные строки (строковые константы) конкатенируются т.е. соединяются в одну строку;
Iкаждая препроцессорная лексема преобразуется в текст на языке Си (к препроцессорным лексемам относятся символьные константы, имена включаемых файлов, идентификаторы, знаки операций, препроцессорные числа. знаки препинания, строковые константы (строки) и любые символы, отличные от пробела).
Стадия обработки директив препроцессора.
При ее обработке возможны следующие действия:
Iзамена идентификаторов (обозначений) заранее подготовленными последовательностями символов;
Стадия обработки директив препроцессора.
При ее обработке возможны следующие действия:
Iзамена идентификаторов (обозначений) заранее подготовленными последовательностями символов;
Iвключение в программу текстов из указанных файлов;