1、类型不同
bool为布尔型
BOOL为int型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别; false可以代表0,但true有很多种,并非只有1。
如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器
BOOL 取值FALSE(0)和TRUE(0).
如果编程人员这里稍不注意或者经验不足,就有可能导致在这个地方吃亏,比如:
BOOL IsBigger(int a, int b)
{
return a-b;
}
//...............
if(IsBigger(7,3) == TRUE)
{
//pos 1
}
else
{
//pos2
}
这个例子中,编程人员可能本意想在pos 1中处理一些操作,但是因为不了解BOOL 的一些特性,就会导致bug出现。
为了避免这样一种情况,我想可以这样来重写 IsBigger就ok
BOOL IsBigger(int a, int b)
{
return !!(a-b);
}