1、類型不同
BOOL為int型;
bool為布爾型;
2、長度不同
bool只有一個字節;
BOOL長度視實際環境來定,一般可認為是4個字節;
3、取值不同
bool取值false和true,是0和1的區別;
BOOL取值FALSE和TRUE,是0和非0的區別;
下面用例子來說明一下
#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;
}
打印結果如下:
因為b2是bool類型,所以b2只能是1或0;即,b2=b4=1。
因為b3是BOOL類型,它有8位存儲空間,所以b3的取值范圍是-256~255。
因為256轉化16進制=0X100,所以b3=0;b1=3。
最后可以得出結論,如果變量為BOOL類型,只要數值>255,它的結果只能是低8位的值;
如果b3=272;則打印結果是b3=16。
新聞熱點
疑難解答