-
Sabj
-
языки разные. вообще с некоторыми оговорками эти типы можно считать одинаковыми.
-
bool = longbool в delphi - являеться в сучности integer
-
> В чем разница между переменными типа bool и boolean?
Сравни SizeOf()
-
> demon (29.11.2008 18:27:00) [0]
В справке описано, но кратко xBool не логический тип, а арифметический, используемый в недоязыках, как эквивалент логического. В Дельфи для поддержки АПИ введена ограниченая поддержка и его.
-
> Тын-Дын (29.11.2008 18:42:03) [3]
Зачем, это же производный (generic) тип и его длина меняется.
-
> Сравни SizeOf()
bool - 4
boolean - 1
теперь ясно, буду boolean использовать.
-
Windows Data Types
BOOL Boolean variable (should be TRUE or FALSE).
This type is declared in WinDef.h as follows:
typedef int BOOL;
BOOLEAN Boolean variable (should be TRUE or FALSE).
This type is declared in WinNT.h as follows:
typedef BYTE BOOLEAN;
-
> теперь ясно, буду boolean использовать.
Почему? И где?
-
ааа. речь о дельфевом bool. тогда да, 4 байта против 1.
-
> demon (29.11.2008 18:53:06) [6]
Плохое сравнение.
-
> isasa (29.11.2008 18:53:07) [7]
Ну так приходится расплачиваться за грехи предыдущих поколений
-
из [7] вытекает что программа исползующая boolean не будет работать в 9x системах, верно?
-
> [12] demon © (29.11.08 19:08)
Да нет, с чего бы?
-
> DVM (29.11.2008 18:54:08) [8]
И еще вопрос
Зачем и как?
-
> Да нет, с чего бы?
> declared in WinNT.h
-
-
А если будет написано
> declared in abc.h
то это будет означать, что под Виндоус работать не будет, только под abcOS
-
В C и C++ нет отдельного логического типа, он получается из целых чисел, причём любое ненулевое значение считается истиной, нулевое - ложью. Из-за различной разрядности исторически появились "фундаментальные" ByteBool, WordBool и LongBool, устроенные по одному принципу, но отличающиеся разрядностью, и Bool - обобщённый тип, разрядность которого совпадает с разрядностью платформы, т.е. для Win32 Bool = LongBool.
В Паскале есть встроенный логический тип Boolean, который занимает 1 байт и принимает значения True (1) и False (0), прочие значения компилятором не допускаются. Это тоже исторически сложилось.
Так как API Windows в качестве логических типов использует типы C/C++, в Delphi для совместимости введена поддержка этих типов. Они могут использоваться там, где используется Boolean, и компилятор неявно выполняет необходимые преобразования.
-
[18]> В C нет отдельного логического типа
fixed