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

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

Приведение Boolean к Integer [D7]


Ega23 ©   (2007-11-13 15:48:00) 

Гарантировано ли Integer(True) даст единицу, а Integer(False) - 0?


Anatoly Podgoretsky   (2007-11-13 16:59:00) [1]

> homm  (13.11.2007 16:21:04)  [4]

Вот это более правильная проверка, но не совсем, поскольку я не зря говорил, про грабли на которые наступили СИшника в Виндоус, которые посчитали, что TRUE это 00000001, на теже грабли пытаешься наступить ты, некоторые функции могут вернуть $FFFFFFFF, а это меньше нуля, правлиьно будет так

Integer(True) <> 0

Гарантируется только, что False = 0


clickmaker   (2007-11-13 16:22:00) [2]

Integer(True) <> 0


homm   (2007-11-13 16:21:00) [3]

Integer(True) > 0


Anatoly Podgoretsky   (2007-11-13 16:16:00) [4]

Второе гарантировано, первое нет.
На подобных гарантиях народ уже спотыкался.


Ega23   (2007-11-13 15:53:00) [5]


> корректней приводить через Ord


Точно!
Не подумал. Большое спасибо!


Palladin   (2007-11-13 15:52:00) [6]

корректней приводить через Ord

ну а какие значения они могут дать, зависит от компилятора, хотя думаю что для всех версий 1 и 0... в справке смотреть нужно...


Наверх

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