Ifdef: условная компиляция Назад В начало Вперед
<оператор-условной-компиляции-IFDEF> =
  (#ifdef <имя> | #ifndef <имя>)
	<текст-1>
  {(#elifdef | #elifndef)<имя>
	<текст-2>}
  [#else [<выражение-else>]
	<текст-3>]
  #end

Операторы условной компиляции позволяют выбирать из входного потока некоторую часть текста в зависимости от того, было ли ранее определено макроопределение с идентификатором <имя> или нет.

Оператор #ifdef передает базовому компилятору порцию входного потока <текст-1>, если идентификатор <имя> имеет определенное значение (возможно, пустое) в данный момент.

Оператор #ifndef передает базовому компилятору порцию входного потока <текст-1>, если идентификатор <имя> не определен в данный момент.

Оператор (#elifdef | #elifndef) <имя> <текст-2> является сокращенной записью группы операторов:

#else
  (#ifdef | #ifndef) <имя>
	<текст-2>
#endif

Оператор #else выполняется, если не было выполнено ни одно из предыдущих условий.