Директива препроцессора #IFDEF | #IFNDEF ... #ENDIF

Выполняет условное включение группы команд в код на этапе компиляции, если определена константа этапа компиляции.

Синтаксис

#IFDEF | #IFNDEF ConstantName
	Commands
[#ELSE
	Commands]
#ENDIF

Параметры
#IFDEF
Указывает, что на этапе компиляции следует включить заданную группу команд, если была определена константа этапа компиляции с именем ConstantName.
Ниже описывается, каким образом группа команд включается в код на этапе компиляции при задании #IFDEF.
Если константа ConstantName определена, на этапе компиляции включается группа команд, следующая за #IFDEF и предшествующая директиве #ELSE или #ENDIF (той из них, которая встретится раньше).
Если константа ConstantName не определена и задана директива #ELSE, на этапе компиляции включается группа команд, следующая за #ELSE и предшествующая директиве #ENDIF.
Если константа ConstantName не определена и директива #ELSE не задана, ни одна из команд, находящихся внутри структуры #IFDEF ... #ENDIF, не включается на этапе компиляции.
#IFNDEF
Указывает, что на этапе компиляции следует включить заданную группу команд, если константа этапа компиляции с именем ConstantName не определена.
Ниже описывается, каким образом группа команд включается в код на этапе компиляции при задании #IFNDEF.
Если константа ConstantName не определена, на этапе компиляции включается группа команд, следующих за #IFNDEF и предшествующих директиве #ELSE или #ENDIF (той из них, которая встретится раньше).
Если константа ConstantName определена и задана директива #ELSE, на этапе компиляции включается группа команд, следующих за #ELSE и предшествующих директиве #ENDIF.
Если константа ConstantName определена и директива #ELSE не задана, ни одна из команд, находящихся внутри структуры #IFDEF ... #ENDIF, не включается на этапе компиляции.
ConstantName
Задает константу этапа компиляции, существование которой определяет необходимость включения группы команд на этапе компиляции. Константы этапа компиляции определяются с помощью директивы #DEFINE.
Commands
Задают группу команд, включаемых на этапе компиляции.

Комментарии
Структуру #IFDEF | #IFNDEF ... #ENDIF можно вкладывать в другую структуру #IFDEF | #IFNDEF ... #ENDIF.
Комментарии можно располагать в одной строке с директивами #IFDEF, #IFNDEF, #ELSE и #ENDIF. Комментарии игнорируются во время компиляции и выполнения программы.

Пример

* В следующем примере создается константа этапа компиляции с именем
* MYDEFINE. Структура #IFDEF ... #ENDIF задает выдачу сообщения о том,
* была ли определена константа этапа компиляции.
#DEFINE MYDEFINE 1

#IFDEF MYDEFINE	
	WAIT WINDOW "MYDEFINE exists"
#ELSE
	WAIT WINDOW "MYDEFINE does not exist"
#ENDIF

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.