Windows中的BOOL与delphi中Boolean

Windows中的BOOL:4字节,是LongBool

TRUE = -1:即DWORD(-1),同时任何非零值都为TRUE; 

FALSE = 0:即DWORD(0) 

4字节的意思就是在强制转换时,这句BOOL(INT64($1122334400000000))为False,因为强制转换时从低位数据取值的(Big Endian的CPU规则当然就是相反)

delphi中Boolean

这个非常值得注意的类型,Delph默认的Boolean是用ByteBool,所以在强制转换类型时下面都是False

Boolean(0) :False
Boolean(256) :False
Boolean(512) :False
Boolean(768) :False
Boolean(1024) :False
....
........

................等等,也就是只要最d低位1字节为0,则为False,反之如果不为0则为True,

C语言中可以使用如下判断整型

int i=256;

if (i) {};

但是delphi中要判断一个整型数是否为0,通常情况下需要用<>,=之类的符号

所以上面的写法正确应该是

Boolean(0<>0) :False
Boolean(256<>0) :True
Boolean(512<>0) :True  

....
........

...............

C++中的bool

TRUE : <>0 

FALSE : 0

原文地址:https://www.cnblogs.com/caibirdy1985/p/4232981.html