Назначение:
Директива препроцессора, которая даёт возможность условной компиляции.
Синтаксис:
#IF условие
ряд_инструкции
#ELSE
ряд_инструкции
#ENDIF
где:
условие выражение которое задаёт условие при котором будет скомпилирован, ряд_инструкции произвольный ряд инструкций.
Описание:
Эта директива позволяют использовать в программе так называемую условную компиляцию.
Что такое условная компиляция?
Обычно подвергается компиляции весь текст программы. Однако, вы можете сделать так что, компилятор не примет во внимание любые части текста в зависимости от заданного условия. Для этого можно использовать директивы препроцессора, которые соответствуют этой задаче.
Условная компиляция основана на постоянной, значение которой проверяется при определенных условиях во время компиляции. Для этого перед условной компиляцией инструкции, нужно ее определить. Ниже приведен простой пример, объясняющий, всю идею:
Const test =
#if test
Print "Это будет скомпилировано"
#else
Print "А это нет"
#endif
Важно! В директиве #IF нет THEN, а также #ENDIF то не то же самое, что END IF.
Использование # ELSE не является обязательным, но не забывайте о директиве #ENDIF.
Язык BASCOM BASIC имеет несколько внутренних констант, которые могут быть использованы в качестве составляющих частей условия. Представленные ниже автоматически генерируются компилятором (образцовые значения!):
_DATE_FORMAT = 0
_DATE_SEPARATOR = 47
_CHIP = 0
_RAMSIZE = 128
_ERAMSIZE = 128
_SIM = 0
_XTAL = 4000000
_BUILD = 11174
_COMPILER = 90
_DATE_FORMAT определяет способ которым записан текст даты программного RTC.
_DATE_SEPARATOR определяет какой знак в коде ASCII разделяет составляющие части даты.
_CHIP хранит число типа Integer, который определяет вид процессора, в данном случае AT90s2313.
_RAMSIZE определяет количество памяти SRAM в байтах.
_ERAMSIZE определяет количество памяти EEPROM в байтах.
_SIM устанавливается как 1 когда в программе использована директива $SIM.
_XTAL содержит информацию о частоте используемого кварцевого резонатора в Hz.
_BUILD содержит номер версии компилятора BASCOM.
_COMPILER заключает внутренний номер версии компилятора.
Номер версии можно с успехом использовать, когда написанная программа должна быть скомпилирована в версии языка BASCOM, которая обслуживает данную инструкцию.
Например:
#if _BUILD >=
s = Log(.1)
#else
Print " Эта функция может быть использована в версии 1.11.6.2 или выше "
#endif