A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nsswift 中级黑马   /  2015-5-24 08:53  /  695 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 nsswift 于 2015-6-12 17:16 编辑

       Objective-C中的BOOL使用8为的存储空间,它实际上是一种带符号的字符类型(singed char)的类型定义(typedef)。通过#define指令吧YES定义为1,NO定义为0。Objective-C并不会将BOOL作为仅能保存YES或NO值的真正不二值来处理。编译器会将BOOL认作8位二进制数,YES和NO值只是在习惯上的一种理解。

       存在这样一个小问题:如果不小心将一个大于1自己的整型值(比如short或int)复制给一个BOOL变量,那么只有地位自己会用作BOOL值。如果该低位刚好为0(比如8960,写成十六进制为0x2300)BOOL值将会被认作是0,即NO值。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马