Справочное руководство по языку Ада-83


Скалярные типы - часть 5


Целые литералы — это литералы анонимного предопределенного целого типа, который в данном руководстве называется

универсальным-целым.

Другие целые типы не имеют литералов. Однако для каждого целого типа существует неявное преобразование

универсального-целого

значения в соответствующее значение (если оно есть) целого типа. Обстоятельства, в которых применяются такие неявные преобразования, описаны в разд. 4.6.

Номер позиции целого значения — это соответствующее значение типа

универсальный-цепый.

Для всех целых типов предопределены одни и те же арифметические операции (см. 4.5). Исключение NUMERIC-ERROR возбуждается при выполнении операции (в частности, неявного преобразования), которая не может передать корректный результат (т.е. значение, соответствующее математическому результату, не является значением целого типа). Однако от реализации не требуется возбуждения исключения NUMERIC_ERROR, если операция является частью большего выражения, результат которого может быть вычислен корректно, как пояснено в разд. 11.6.

Примеры:

type PAGE_NUM is range 1 .. 2_000; type LINE_SIZE is range 1 .. MAX_LINE_SIZE;

subtype SMAL_IINT is INTEGER range -10 .. 10; subtype COLUMN_PTR is LINESIZE range 1 .. 10: subtype BUFFER_SIZE is INTEGER range 0 .. МАХ;

Примечание.

Имя в описании целого типа — это имя подтипа. С другой стороны, предопределенные операции над целым типом определяют результат, который принадлежит диапазону, определяемому родительским предопределенным типом; такой результат не обязательно принадлежит описанному подтипу, и попытка присвоить такой результат переменной целого подтипа возбуждает исключение CONSTRAINT_ERROR. Наименьшее (наибольшее по модулю отрицательное) значение, поддержанное реализацией для предопределенных целых типов, есть именованное число SYSTEM.MIN_INT, а наибольшее (из положительных) значение — SYSTEM.MAX_INT (см. 13.7).

Ссылки:

анонимный тип 3.3.1, граница диапазона 3.5, идентификатор 2.3, исключение CONSTRAINT_ERROR 11.1, исключение NUMERIC-ERROR 11.1, литерал 4.2, ограничение диапазона 3.5, описание подтипа 3.3.2, описание типа 3.3.1, определение типа 3.3.1, предопределенная операция 4.5, предопределенный пакет системы 13.7, преобразование 4.6, принадлежит подтипу 3.3, родительский тип 3.4, статическое выражение 4.9, тип 3.3, универсальный тип 4.10, целый литерал 2.4.




Начало  Назад  Вперед



Книжный магазин