Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 - виндовый целочисленный тип


Наверх

Титульная страница Поиск, карта сайта Написать письмо