跟我一起学OC系列-布尔类型

本文介绍了Objective-C中BOOL类型的定义,它是一个typedef的signed char,使用8位存储空间。YES和NO分别代表1和0。当一个大于1字节的整型赋值给BOOL变量时,只会取低位作为BOOL值,可能导致预期外的结果。
摘要由CSDN通过智能技术生成

大家先来看看objective-c是如何定义布尔类型的,废话不多说,直接看如下截图:
这里写图片描述
从上图可以了解到:Objective C中的BOOL实际上是一种对带符号的字符(singed char)类型的定义(typedef),它使用8位存储空间(一个字节)。YES定义为1,而NO定义为0(使用#define)。 编译器将BOOL认做8为二进制数,YES 和 NO值只是一种约定。这会引发一个小问题,不过不小心把一个长于1字节的整形复制给BOOL变量,那么只有低位作BOOL值。
例子如下:

     BOOL flag=YES;
     NSLog(@"%d",flag);
     BOOL test=127;
     NSLog(@"%d",test);
     if (test) {
        NSLog(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值