![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Boolean и bool? [D7, XP]
Ezorcist © (2006-04-14 13:41:00)В чем ращзница?
begin...end (2006-04-14 14:07:00) [1]BOOL -- это то же, что и LongBool.
А разница между Boolean и LongBool такая:
1) Boolean занимает 1 байт, а LongBool -- 4;
2) Тип Boolean упорядочен, и для Boolean True -- это 1, а False -- это 0. Других значений переменная типа Boolean содержать не должна. А для LongBool любое ненулевое значение считается равным True. Вот пример:
var.
LB: LongBool;
B: Boolean;
begin
Integer(LB) := 2;
Byte(B) := 2;
if LB = True then
ShowMessage('LongBool');
if B = True then
ShowMessage('Boolean')
end
Кстати, этот пример показывает возможную опасность использования таких конструкций (if Variable = Truethen). Тот же пример, но с проверками видаif Variablethen, даст другой результат.
P.S. И всё это, кстати, описано в справке (см. boolean types).
Desdechado (2006-04-14 13:44:00) [2]boolean - паскалевский перечислимый тип
bool - виндовый целочисленный тип