Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lec18

.pdf
Скачиваний:
10
Добавлен:
12.02.2015
Размер:
940.95 Кб
Скачать

Стадия обработки директив препроцессора.

При ее обработке возможны следующие действия:

Iзамена идентификаторов (обозначений) заранее подготовленными последовательностями символов;

Iвключение в программу текстов из указанных файлов;

Iисключение из программы отдельных частей ее текста (условная компиляция);

Стадия обработки директив препроцессора.

При ее обработке возможны следующие действия:

Iзамена идентификаторов (обозначений) заранее подготовленными последовательностями символов;

Iвключение в программу текстов из указанных файлов;

Iисключение из программы отдельных частей ее текста (условная компиляция);

Iмакроподстановка, т.е. замена обозначения параметризированным текстом, формируемым препроцессором с учетом конкретных параметров (аргументов).

Директивы препроцессора.

Для управления препроцессором используются команды (директивы) препроцессора, каждая из которых помещается на отдельной строке и начинается с символа ].

Обобщенный формат директивы препроцессора:

Определены следующие директивы препроцессора:

Директивы препроцессора.

Препроцессорные операции.

Кроме директив препроцессора существуют три препроцессорные операции:

Замены в тексте.

Для замены выбранного идентификатора заранее подготовленной последовательностью символов используется директива ]define:

Директива может размещаться в любом месте обрабатываемого текста, а ее действие в обычном случае распространяется от точки размещения до конца текста.

Замены в тексте. Пример.

Цепочка подстановок.

Если в строке замещения команды ]define в качестве отдельной лексемы встречается препроцессорный идентификатор ранее определенный другой директивой ]define, то выполняется цепочка последовательных подстановок. Пример. Рассмотрим как можно определить диапазон (RANGE) возможных значений любой целой переменной типа int в следующей программе:

Цепочка подстановок.

Препроцессор вставляет текст из файла limits.h, в котором определены константы INT_MAX и INT_MIN. Программа примет вид:

Цепочка подстановок.

Обнаружив в тексте директивы ]define (добавленные из файла limits.h), препроцессор делает подстановку, программа примет вид:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]