1、類(lèi)型不同
BOOL為int型;
bool為布爾型;
2、長(zhǎng)度不同
bool只有一個(gè)字節(jié);
BOOL長(zhǎng)度視實(shí)際環(huán)境來(lái)定,一般可認(rèn)為是4個(gè)字節(jié);
3、取值不同
bool取值false和true,是0和1的區(qū)別;
BOOL取值FALSE和TRUE,是0和非0的區(qū)別;
下面用例子來(lái)說(shuō)明一下
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
BOOL b1 =3;
bool b2 =3;
BOOL b3 =256;
bool b4 =256;
NSLog(@"b1=%d",b1 );
NSLog(@"b2=%d",b2 );
NSLog(@"b3=%d",b3 );
NSLog(@"b4=%d",b4 );
}
return 0;
}
打印結(jié)果如下:

因?yàn)閎2是bool類(lèi)型,所以b2只能是1或0;即,b2=b4=1。
因?yàn)閎3是BOOL類(lèi)型,它有8位存儲(chǔ)空間,所以b3的取值范圍是-256~255。
因?yàn)?56轉(zhuǎn)化16進(jìn)制=0X100,所以b3=0;b1=3。
最后可以得出結(jié)論,如果變量為BOOL類(lèi)型,只要數(shù)值>255,它的結(jié)果只能是低8位的值;
如果b3=272;則打印結(jié)果是b3=16。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注