Булевы типы

На верх  Назад  Вперёд

Free Pascal поддерживает тип Boolean с двумя предопределенными возможными значениями True и False. Только два значения могут быть присвоены логическому типу. Конечно, любое выражение, которое относится к Boolean значению, также может быть присвоено Boolean типу.


Таблица 3.3: Булевы типы

Имя

Размер

Ord(True)

Boolean

1

1

ByteBool

1

Любое ненулевое значение

WordBool

2

Любое ненулевое значение

LongBool

4

Любое ненулевое значение


Free Pascal также поддерживает типы ByteBool, WordBool и LongBool. Они имеют тип Byte, Word и Longint, но являются совместимыми с переменными булевого типа: False (Ложь) эквивалентна нулю (0 - нуль), и любое ненулевое значение считается True (Истиной) при преобразовании в булево значение. Булево значение True преобразовывается в –1 в случае, если оно присвоено переменной типа LongBool.

Следующие присвоения корректны, при условии что переменная B типа Boolean (логического):

B := True;

B := False;

B := 1<>2; { -  Результат в B  :=  True}

Булевы выражения также используются в условиях.

Замечание:

Во Free Pascal, логические выражения по умолчанию всегда вычисляются таким образом, что, когда становится известен результат, остальная часть выражения больше не будет вычисляться: это называется короткой схемой вычисления логического выражения.

В следующем примере функция Func никогда не будут вызвана, что может привести к странным побочным эффектам.

...

B := False;

A := B and Func;

Здесь Func является функцией, которая возвращает значение Boolean (логического) типа.

Такое поведение контролируется директивой компилятора {$B}.