Константа - это идентификатор, отмечающий значение, которое
не может изменяться. Идентификатор константы не может быть вклю-
чен в свое собственное описание.
описание константы
і ЪДДДДДДДДДДДДДї ЪДДДї ЪДДДДДДДДДї ЪДДДї
АДДДДД>іидентификаторГДДД>і = ГДД>іконстантаГДДД>і ; ГДВДД>
^ АДДДДДДДДДДДДДЩ АДДДЩ АДДДДДДДДДЩ АДДДЩ і
і і
АДДДДДДДДДДДДДДДДДДДДДДДЩ
Идентификатор константы с предшествующим ему знаком обозна-
чает значение целого или вещественного типа.
Являясь расширением стандартного Паскаля, Borland Pascal
позволяет использовать выражения-константы. Выражение-константа
представляет собой выражение, которое может вычисляться компиля-
тором без необходимости выполнения программы. Приведем примеры
выражений-констант:
100
'A'
256 - 1
(2.5 + 1) / (2.5 - 1)
'Borland' + '' + 'Pascal'
Chr(32)
Ord('Z') - Ord('A') + 1
Простейший случай выражения-константы представляет собой
простая константа, например 100
или 'A'. В стандартном Паскале
допускается использовать только
простые константы. В
Borland
Pascal разрешено использование
выражений-констант.
ЪДДДДДДДДДї
константа
ДДДД>івыражениеГДДД>
АДДДДДДДДДЩ
Поскольку компилятор должен иметь возможность полностью вы-
числить выражение-константу во время
компиляции, в качестве выра-
жений-констант не допускается
использовать следующие конструкции:
- ссылки на
переменные и типизированные константы (кроме
констант в адресных выражениях,
описываемых в Главе 5);
- вызовы функций (кроме тех,
которые отмечены далее);
- оператор получения адреса @
(кроме констант в адресных вы-
ражениях, описываемых в Главе 5).
За исключением этих ограничений для выражений-констант соб-
людаются те же синтаксические
правила, что и для обычных выраже-
ний (описанных в Главе 6
"Выражения").
В выражениях-константах допускается
использовать следующие
стандартные
Abs, Chr, Hi, High,
Length, Lo, Low, Odd, Ord, Pred, Ptr,
Round,
SizeOf, Succ, Swap, Trunc.
Приведем некоторые примеры использования выражений-констант
в описаниях констант:
Min = 0;
Max = 100;
Center = (Max - Min) div 2;
Beta = Chr(255);
NumChars = Ord('Z') - Ord('A') + 1;
Message = 'Out of memory';
ErrStr = 'Error:' + Message + '.';
ErrPos = 80 - Length(Error) div 2;
ErrAttr = Blink + Red * 16 + White;
Ln10 = 2.302585092994095684;
Ln10R = 1 / Ln10;
Numeric = ['0'..'9'];
Alpha = ['A'..'Z','a'..'z'];
AlphaNum = Alpha + Numeric;