-
Notifications
You must be signed in to change notification settings - Fork 0
Unit's Expression2
Yamir edited this page Nov 24, 2025
·
1 revision
На сервере внесены некоторые изменения в preprocessor Expression2.
Они были расчитаны на работу и поддержку кода на других версиях Expression2.
// В оригинале проверяет на наличие функции unit()
// Однако, такой функции нет, но Preprocessor все равно вставит этот блок кода
// во время компиляции кода.
#ifdef unit()
#endif
// Противоположность #ifdef
#ifndef unit()
#endif// Специальные настройки, которые редактируют поведение препроцессорa и компилятора.
#pragma <id>
// Временное решение, которое показывает все существующие
// настройки для препроцессора и компилятора.
#showpragmasWarning
Эта директива выключена в коде препроцессора. Это означает, что она не будет работать.
// Определение runtime-only константы.
#defconst _MYCONSTANT 1
print(_MYCONSTANT)Warning
Эта директива выключена в коде препроцессора. Это означает, что она не будет работать.
Warning
Компилятор не слишком умный, чтобы во время обработки просчитывать значения и оптимизировать код. Preprocessor буквально вставляет значения, которые затем обрабатываются в рантайме.
// Проверка, что мы на Unit!
#ifdef unit()
// Определение функции min.
// Везде, где используется min(a, b) будет
// заменено на a < b ? a : b
#define min(a, b) a < b ? a : b
#else
// Поддержка других версий Expression2.
function min(a:number, b:number)
{
return a < b ? a : b
}
#endif
print(min(1, 2))
// Заменяется на:
print(1 < 2 ? 1 : 2)Warning
Эта директива выключена в коде препроцессора. Это означает, что она не будет работать.
// Определение MYDEF как 1.
#define MYDEF 1
// Проверка наличия MYDEF
#ifdef MYDEF() // Скобочки нужны для того, чтобы этот код работал на других версиях Expression2.
// Выписывание значения MYDEF.
// Preprocessor вставит 1 за место MYDEF.
print("Defined :) - ", MYDEF)
#else
print("Not defined :(")
#endif-
Рекомендуется для чтения
-
Уникальное