本帖最后由 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值。 |