iOS中的BOOL和bool
2016-02-01 11:36
302 查看
说明:objective-c 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。通过#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值。而对于bool类型,只有true和false的区别,即0为false,非0为true。
举例:
BOOL b1=8960;
// 实际是 NO,因为8960换成十六进制为0x2300,BOOL 只有8位存储空间,取0x2300的低8位,00,所以是NO
bool b2=8960;//实际是true,因为bool类型,非0即为true。
4000
相关文章推荐
- iOS后台任务
- 苹果开发者购买失败
- iOS 如何改变表视图分割线在iOS7中的默认偏移
- iOS并行开发:从NSOperation和调度队列开始
- iOS学习日志
- IOS中无限滚动Scrollview效果
- iOS笔记 复习Category和Extension
- iOS统计代码总行数
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内
- ios8 新增的 showViewController 和 showDetailViewController
- IOS CoceData
- iOS缓存框架-PINCache解读
- iOS开发-- 开发细节(打开电话,safari,地图,导航,短信,邮箱)
- (NO.00005)iOS实现炸弹人游戏(十):游戏主角(三)
- (NO.00005)iOS实现炸弹人游戏(十):游戏主角(三)
- (NO.00005)iOS实现炸弹人游戏(十):游戏主角(三)
- iOS常用快捷键总结
- 单例正确写法
- c#上iOS apns p12文件制作记录 iOS推送证书制件
- iOS 引导页