Стадии и основные команды препроцессорной обработки
Препроцессор языка Си представляет собой программу (подпрограмму), которая используется для обработки исходного файла на нулевой фазе компиляции. Чаще всего препроцессор не отдельная программа, а входит в состав компилятора.
Директивы препроцессора представляют инструкции, записанные в исходном тексте программы. Они обычно используются для того, чтобы облегчить модификацию исходных программ и сделать их более независимыми от особенностей различных реализаций компилятора языка Си, разных компьютеров и операционных сред.
Стадии препроцессорной обработки
1. Все системно-зависимые обозначения (например, системно-зависимый индикатор конца строки) перекодируются в стандартные коды.
2. Каждая пара символов «\» и «конец строки» убираются, и тем самым следующая строка присоединяется к исходной.
3. В тексте распознаются директивы препроцессора, а каждый комментарий заменяется пробелом.
4. Выполняются директивы препроцессора и выполняются макроподстановки.
5. ESC-последовательности в строках (символах) заменяются на их эквиваленты (числовые коды).
6. Смежные символьные строки объединяются в одну строку.
С помощью директив препроцессора можно выполнять следующие действия
• заменять идентификаторы заранее подготовленными последовательностями символов;
• включать тексты из файлов;
• исключать из текста программы отдельные его части (условная компиляция);
• заменять обозначения параметризованным текстом (макроподстановки).
Определены следующие препроцессорные директивы: #define #include #undef #if #ifdef #else #endif #elif #line #error # ##
Кроме того, обычно в данной теме рассматривают и указания компилятору, внешне похожие на директивы препроцессора. Например, в Microsoft Visual C++ существует указание компилятору #pragma.
Дата добавления: 2015-08-14; просмотров: 1085;