Команда ifdef
Команда условной компиляции ifdef позволяет включать или исключать некоторые части программы для компиляции в зависимости от каких-то условий. После ключевого слова ifdef должно следовать выражение-условие, а затем в фигурных скобках находиться часть программы, которую нужно откомпилировать если условие выполняется ( не равно 0 ). В качестве условия может использоваться выражение состоящее из макросов и констант (число, строка, набор данных). Посмотреть все возможные операции для выражений можно на странице Макровыражения.
В примере ниже функция myfunc будет компилироваться если макрос $MODE является числом не равным нулю или не пустой строкой.
ifdef $MODE
{
func myfunc( uint param)
{ ... }
}
ifdef может использоваться не только на верхнем уровне вложенности, но и внутри любой другой команды и даже внутри выражений. Кроме этого допускается вложенность команд ifdef друг в друга.
func myfunc( uint param )
{
uint i = param
ifdef $ABC == 3 || $NAME == "Private"
{
i *= 2 + ifdef !$MODE { 100 } else {200}
}
...
}
elif и else
Если условие ложно и в этом случае необходимо откомпилировать другую часть программы, то используется дополнительная команда else. Если имеется более чем два варианта компиляции, то можно использовать команду elif с дополнительным условием. Может быть несколько команд elif подряд, а в конце команда else.
define
{
ifdef $MODE == 5
{
NAME = "Public"
MODE= 10
}
elif $MODE == 4
{
NAME = "Debug"
}
elif $MODE > 5 : NAME = "Private"
else : NAME = "Unknown"
}