Условная компиляция
Условные
конструкции препроцессора позволяют
компилировать или пропускать часть программы в
зависимсти от выполнения некоторого условия.
Условие может принимать одну из описываемых ниже
форм.
#if
константное_выражение
Проверяется
значение выражения, составленного из констант и
если оно не равно нулю, компилируется
(включается) последующий текст.
#ifdef
идентификатор
Последующий
тест компилируется, если "идентификатор"
уже был опредеоен для препроцессора в команде #define.
#ifndef
идентификатор
Последующий
текст компилируется, если "идентификатор" в
данный момент не определен. Конструкция
#undef
идентификатор
исключает
"идентификатор" из списка определенных для
препроцессора имен. За любой из трех условных
команд может следовать произвольное число строк
текста, содержащих, возможно, команду вида #else
и заканчивающихся #endif. Если
проверяемое условие справедливо, то строки между
#else и #endif игнорируются. Если же
проверяемое условие не выполняется, то
игнорируются все строки между проверкой и
командой #else, а если ее нет, то командой #endif.
Приведенная
на примере 6.7 программа иллюстрирует применение
некоторых из рассмотренных выше команд,
обеспечивающих условную компиляцию.
Пример 6.7
#define SIZE 16
#include stdio.h
main()
{
char c='A';
#ifdef SIZE
int x=123;
printf("x=%d\n",x);
#else
static char x[SIZE]="информатика";
printf("x=%s\n",x);
#endif
printf("%c\n",c);
} |
< Дальше >
|