Условная компиляция

Директивы условной компиляции и реализуемые правила включения исходного текста:

а) условное включение (аналог работы оператора 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