Условная компиляция
Директивы условной компиляции и реализуемые правила включения исходного текста:
а) условное включение (аналог работы оператора if):
#if<предикат_условия>
ТЕКСТ_1
#endif
б) альтернативное включение (аналог if-else):
#if<предикат_условия>
ТЕКСТ_1
#else
ТЕКСТ_2
#endif
Виды предикатов условий:
константное_выражение ® истина, если его значение не равно нулю;
def ID ® истина, если «ID» был определен ранее оператором #define;
ndef ID ® истина, если «ID» не был определен оператором #define.
Константное_выражение отделяется от ключевого слова if разделителем, а def и ndef - нет.
Пример:
#ifdef DEBUG
print_state();
#endif
Элементы исходного текста "ТЕКСТ_1" или "ТЕКСТ_2" могут содержать любые директивы препроцессора.
Примеры:
#ifndef EOF
#define EOF -1
#endif
#if UNIT==CON
#include "conproc.c"
#else
#include "outproc.c"
#endif
Изменение нумерации строк и идентификатора файла
По умолчанию диагностические сообщения компилятора привязываются к номеру строки и ID файла исходного текста.
Директива
#line номер_строки ID_файла
позволяет с целью более приметной привязки к фрагментам текста изменить номер текущей строки и ID файла на новые значения («ID_файла» можно опустить). В системе программирования TURBO-C оператор line игнорируется.
Св. план 2004, поз. 27
Дата добавления: 2015-09-11; просмотров: 578;