黑马程序员技术交流社区

标题: Objective-C中的BOOL注意点 [打印本页]

作者: nsswift    时间: 2015-5-24 08:53
标题: Objective-C中的BOOL注意点
本帖最后由 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值。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2