引起我兴趣的是Objective-C的BOOL类型定义。
为什么它被定义为signed char
(如果长度大于1个字节的值被分配给它可能会导致意外行为),而不是像C那样被定义为int
(更不用说了)错误边际:零值为假,非零值为真)?
我能想到的唯一原因是Objective-C设计师微优化存储,因为char
将使用比int
更少的内存。请有人开导我吗?
答案 0 :(得分:6)
请记住,Objective-C是在20世纪80年代创建的,当时保存字节确实很重要。
如评论中所述,只要您坚持使用YES和NO值,一切都会没问题。