-
> Григорьев Антон (01.12.2008 8:57:18) [18]
Не только из чисел, практически все является логическим типом, например значения функций, сами функции, выражения, операции и так далее, одним словом все.
-
> inoremap (01.12.2008 9:09:19) [19]
Не fixed, а Masked
-
У меня при приведении Bool к Boolean компилятор выдывал internal errror. Delphi7. Ругался на простую запись: if BoolValue then
Когда я переписал на if BoolValue = True then, провалы прекратились. С тех пор у меня фобия по использованию Bool.
Еще не понятно, как Д сравнивает эти типы между собой. Когда они не 0, они же всеравно могут не равнятся друг другу. Например: первый 1, второй 10. Это можно использовать, как "многозначную" логику. Но вдруг Д принудительно конвертит все "True" типа LongBool к 1, например, через неявные/невидимые приведения к Boolean. Проверить не было времени.
-
> int64 (01.12.08 11:00) [22] > Еще не понятно, как Д сравнивает эти типы между собой. Когда > они не 0, они же всеравно могут не равнятся друг другу. > Например: первый 1, второй 10. Это можно использовать, > как "многозначную" логику.
Однозначно определена только константа FALSE, только с ней и надо сравнивать.
-
> С тех пор у меня фобия по использованию Bool.
Вообще интересно почитать мнения программистов. :) Ведь и Bool и Boolean где то нужно одно, а где то другое. Иногда без Bool не обойтись, к примеру в структурах API. Иногда Bool удобнее использовать, т.к. 0 - это false, а >0 это true.
-
Надо использовать только Bool и не заморачиваться. Иначе с API будут проблемы.
-
> Кто б сомневался (01.12.2008 17:32:24) [24]
Касательно нуля так, а вот не 0 обысно не Истина, а какое то значение - адрес, хендл, количество и т.л.
-
> blackman (01.12.2008 17:55:25) [25]
И с Bool тоже будут, точнее уже есть. Кто то кое где посчитал, что 1 это True, а тот откуда ни возмись появилось, не то что вы подумали, а FFFFFFFF и программы лопнули. Не единственный щелчок по носу. Некоторые проблемы описаны в справке. Гарантируется только 0 = False
-
Anatoly Podgoretsky © (01.12.08 20:11) [27] Что значит кое кто и кое где? Огласите список фамилий! Накажем! :)
Если по-большому, bool и Boolean это изврат. Используем integer и все понятно и просто. Единственное, что этому мешает - компилятор :)
-
Ну погоревалм, а потом дружно стали переделывать библиотеки и программы на x <> 0 then Наказывать то некого, сами себя наказали. А вот двойственная природа функций в С и в ОС меня огорчает. Представляешь как им там в Борланде с переводом. Когда функция описана, как возвращающая BOOL а там черте знает что. Но одну фамилие назову, бить надо Страуструпа или кто там до него был, вроде он крайний.
-
бить надо Страуструпа или кто там до него был, вроде он крайний Низя! Я по его книге учился, когда С осваивал. И borland НЕ прав хотя бы потому, что DELPHI появился позже C. Надо было учесть существующее. К стати, нигде не говорится, что истина именно единица. Не ноль это да. Где вообще увидели единицу? Это и логично, поскольку анализируется не бит. А вообще, все эти условности легко отбрасываются в асме. Различаем длину операнда, а не какие-то придуманные слова...
-
> И borland НЕ прав хотя бы потому, что DELPHI появился позже > C. Надо было учесть существующее.
Это еще неизвестно, что раньше появилось Pascal или C. Оба где то в 1970 году, причем си даже на год попозже вроде.
-
DVM © (01.12.08 22:14) [31] Я не о паскале, а о дельфи
-
> blackman (01.12.2008 21:56:30) [30]
Я точно не помню, но вроде бы была определена константа TRUE = 1 и это работало, пока вдруг Микрософт не стал возвращать вместо 1 значение -1, что соответствует определению bool
Ну дальше ты домыслишь сам.
-
вроде бы была определена константа TRUE = 1 Где? Такого я не видел. Идея с -1 понятна, но как-то не очень верится. Остается только гадать.
-
> Anatoly Podgoretsky © (01.12.08 22:35) [33] > Я точно не помню, но вроде бы была определена константа > TRUE = 1 и это работало, пока вдруг Микрософт не стал возвращать > вместо 1 значение -1, что соответствует определению bool > > Ну дальше ты домыслишь сам.
А не надо было борланду домысливать. Понятно же, что в WinAPI - интерфейс Сишный, следовательно взгляд его писателей (вернее даже видение мира ввобще) - тоже сишный, под это и надо было подстравиваться, когда вводили BOOL и интерпретировали операции с ним. А они "по правильному" сделали. Не подумали.
-
> KSergey (02.12.2008 12:45:35) [35]
Одно но, я не про Борланда рассказывал!
-
-1 это WordBool, в OLE
Вообще, булевский тип кем только не был: и int, и word, и byte
-
> Вообще, булевский тип кем только не был: и int, и word, > и byte >
А иногда и bit :)
-
> Anatoly Podgoretsky © (02.12.08 16:23) [36] > Одно но, я не про Борланда рассказывал!
Это я понял, я немного про другое: в дельфи могли бы сами правильное сделать сравнение для не Boolean-типа под if
|