Для диапазонов также возможен битовый синтаксис, типа :
- Код: Выделить всё
i1: integer of 8 bits;
i1: integer:8;
i2: integer of MAX bits; // 32 bits
i2: integer:MAX; // 32 bits
i3: integer of HUGE bits; // 64 bits
i3: integer:HUGE; // 64 bits
Минус этого варианта - отдельные названия базовых типов для знакового и беззнакового, или префикс UNSUIGNED.
Добавлено спустя 12 минут 2 секунды:Имел в виду, что если значения целых типов, меняющих разрядность от платформе к платформе, нельзя просто так присвоить переменным фиксированной разрядности, при каждом таком присвоении придется явно прописывать приведение типов, что дает дополнительный контроль при многоплатформенной разработке.
Взято из GCC, кода ядра и его обвязки ? Там это актуально - потому что среда работы - от суперсерверов до гаджетов
MAKE определяет архитектуру, скармиливает ее в компилируемые файлы через DEFINE, а мощный С-ый препроцессор все утрясает через синтаксические макросы (которые иногда корректируют исходник до неузнаваемости).
Раз в Паскале, из-за однопроходности компилятора - нет и не будет мощного препоцессора, можно подумать чем этот функционал заменить.