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

#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

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

Expand imageПримечания

Структуру #IFDEF | #IFNDEF ... #ENDIF можно вкладывать в другую структуру #IFDEF | #IFNDEF ... #ENDIF.

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

Expand imageПример

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

  CopyCode imageCopy Code
#DEFINE MYDEFINE 1

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

Expand imageСмотрите Также