Нетипизированные константы
Выражения-константы
Именованные константы
Совместимость типов в операциях
Иногда для операндов в операциях, например, в операциях сравнения, требуется совместимость типов операндов. Совместимость типов, кроме того, является важной предпосылкой для совместимости по присваиванию.
Совместимость типов имеет место, если выполняется по крайней мере одно из следующих условий:
§ оба типа являются одинаковыми (имеют одинаковые описания);
§ оба типа являются вещественными типами;
§ оба типа являются целочисленными;
§ один тип является поддиапазоном другого;
§ оба типа являются поддиапазонами одного и того же основного типа.
Выражение-константа представляет собой выражение, которое может вычисляться компилятором (без выполнения программы).
Поскольку компилятор должен иметь возможность полностью вычислить выражение-константу во время компиляции, в выражениях-константах не допускается использовать:
|
|
– ссылки на переменные и типизированные константы;
– вызовы функций (за исключением стандартных функций).
Примеры выражений-констант:
(2000-20)/2, Chr(255), ’ошибка №’+’2’;
Нетипизированные константы фактически является числом, закрепленным за определённым именем. Нетипизированным константам не выделяется область памяти для хранения значения. Прежде чем начать процесс компиляции, в тексте программы выполняется замена идентификаторов нетипизированных констант на их значения. Следовательно, внутри раздела операторов блока нельзя использовать операторы, изменяющие значение нетипизированных констант.
Синтаксис описания нетипизированных констант (раздел const):
Ид_конст1 = выражение_константа1;...
Ид_констN = выражение_константаN;
Примеры описания нетипизированных констант:
const
Min = 10;
Max = 100;
Mid = (Max-Min)/2;
Beta = Chr(255);
Типизированные константы фактически являются переменными, которые проинициализированы перед началом работы программы.
Инициализацией объектов, использующихся для хранения данных, называют присваивание им начального значения.
В отличие от нетипизированных констант, типизированные константы можно использовать точно так же, как переменные. Типизированные константы не могут использоваться в описании других констант или типов.
Надо отметить, что типизированные константы инициализируются только один раз – в начале выполнения программы. Таким образом, при каждом новом входе в процедуру или функцию локально описанные типизированные константы заново не инициализируются.
Синтаксис описания типизированных констант (раздел const):
Ид_конст1:описание_типа1|Ид_типа1 = выражение_константа1;... Ид_констN:описание_типаN|Ид_типаN = выражение_константаN;
Примеры описания типизированных констант:
const
F: real = -0.1;
IntF: integer = round()
Hider: string[7] = ’Section’;