你的位置:首页 > 操作系统

[操作系统]OC语言中BOOL 和 bool 区别


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。