Основы программирования для автоматизированного проектирования и решения творческих задач - 47 стр.

UptoLike

Составители: 

#inclule "имя_файла"
После обработки текста программы препроцессором на месте этой директивы будет расположен текст
указанного файла. Если имя файла выделено угловыми скобками (< >), то препроцессор будет искать
файл в системных директориях. Если же имя файла выделено кавычками, то файл должен находиться в
одной директории с обрабатываемым препроцессором файлом.
2 Выполнение замен в тексте программы:
#define идентификатор строка_замещения
После включения данной директивы в текст программы, препроцессор произведет замену всех встре-
тившихся идентификаторов, включенных в состав директивы #define на текст строки замещения. Что-
бы прекратить эти действия, в тексте программы нужно поместить директиву
#undef идентификатор
Если в составе директивы #undef указан идентификатор, то препроцессор прекратит осуществление за-
мен именно этого идентификатора. Если директиву #undef указать вообще без идентификатора, то бу-
дут прекращены замены в соответствии со всеми ранее размещенными в тексте программы директива-
ми #define.
3 Директивы условной компиляции. Препроцессорная обработка позволяет манипулировать тек-
стом исходной программы таким образом, что при разных условиях будут компилироваться разные ее
части. Делается это при помощи директив
#if константное_выражение
#ifdef препроцессорный_идентификатор
#ifndef препроцессорный_идентификатор
#elif выражение
#else
#endif
Директивы #if, #ifdef и #ifndef связывают выполнение компиляции блока операторов, следующих
за директивой, с заданным условием. Окончание блока для условной компиляции обозначает директива
#endif. Директива #elif используется вместе с директивой #if для формирования неограниченного коли-
чества альтернативных блоков. Директива #else используется вместе с директивами #if и #elif для соз-
дания единственного альтернативного варианта компиляции.
В директиве #ifdef проверяется, определен ли с помощью директивы #define к текущему моменту
идентификатор, помещенный после #ifdef. А в директиве #ifndef проверяется обратное директиве #ifdef
условие. Здесь истинной будет считаться ситуация, когда проверяемый идентификатор не был опреде-
лен ранее.
П р и м е р 42
#define DEBUG 5
int a =
#if DEBUG == 5
DEBUG;
#elif DEBUG == 1
DEBUG * 2;
#else
1;
#endif