EnglishРусский  

   Приложение

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

Команда 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"
}

Смотрите также

Редактировать