delphi编程里的bool跟boolean类型有什么区别?
之前一直认为bool是win32里的布尔值,boolean是delphi里特有的布尔值(就是true或则false),今天碰到一个API函数,选取返回值时,这两个类型的返...
之前一直认为bool是win32里的布尔值,boolean是delphi里特有的布尔值(就是true或则false),今天碰到一个API函数,选取返回值时,这两个类型的返回值是不一样的,一个是true另一个是false,这两个有什么区别么?
展开
4个回答
展开全部
1、在使用API时,不要对BOOL类型的变量用Boolean进行强制转换...
2、Delphi编译器中,BOOL(LongBool)长32位,而Boolean(ByteBool)长8位,
例如某个API返回一个BOOL变量,它在内存中的实际值是256,对于BOOL型来说,显然这个变量代表True,因为256 <> 0;
如果你要把这个实际值为256的变量转换为8位长的Boolean型时,Boolean直接截断256的后8位,成了0,这时Boolean代表当然是False...
3、原因就是这么简单...
2、Delphi编译器中,BOOL(LongBool)长32位,而Boolean(ByteBool)长8位,
例如某个API返回一个BOOL变量,它在内存中的实际值是256,对于BOOL型来说,显然这个变量代表True,因为256 <> 0;
如果你要把这个实际值为256的变量转换为8位长的Boolean型时,Boolean直接截断256的后8位,成了0,这时Boolean代表当然是False...
3、原因就是这么简单...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那个api函数出现这个问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询