На этом шаге мы рассмотрим правила использования логических типов.
Object Pascal так же, как и Borland Pascal версии 7.0, поддерживает четыре булевских типа: Boolean, ByteBool, WordBool и LongBool. Характеристики булевских типов приведены в таблице 1.
Идентификатор типа | Значению False соответствует | Значению True соответствует | Размер памяти |
---|---|---|---|
Boolean | число 0 | любое число, отличное от 0 | 1 байт |
ByteBool | число 0 | 1 байт | |
WordBool | число 0 в обоих байтах | 2 байта | |
LongBool | число 0 во всех байтах | 4 байта |
Отметим, что булевские типы ByteBool, WordBool и LongBool служат для обеспечения совместимости разрабатываемых программ с Windows, в которой значению False соответствует число 0, а значению True - любое число, отличное от 0. Результирующим типом операций сравнения и логических операций по-прежнему остается тип Boolean.
Функции Ord, Pred и Succ со всеми булевскими типами работают одинаково. Причем функция Ord для значения False возвращает порядковый номер 0, а для значения True - десятичное значение числа, записанного в соответствующей булевской переменной. Отличие булевских типов ByteBool, WordBool и LongBool от классического Boolean проявляется после присваивания результата функций Pred и Succ переменным соответствующих типов. В этом случае для переменной типа Boolean при значении True функция Ord по-прежнему возвращает десятичное значение числа, записанного в этой переменной. А для переменных типов ByteBool, WordBool и LongBool при значении True функция Ord всегда возвращает значение 1.
На следующем шаге мы рассмотрим символьные типы.