【发布时间】:2011-02-04 14:42:33
【问题描述】:
引起我兴趣的是 Objective-C 的 BOOL 类型定义。
为什么将它定义为signed char(如果为其分配长度大于 1 字节的值,可能会导致意外行为)而不是像 C 那样定义为int(错误余地要少得多:零值为假,非零值为真)?
我能想到的唯一原因是 Objective-C 设计者对存储进行了微优化,因为 char 将使用比 int 更少的内存。请问有大神能指点一下吗?
【问题讨论】:
-
只是不要给它赋值YES和NO以外的任何东西,当你测试它时,只测试它是否设置。这就是指导方针,因此无论出于何种愚蠢的原因,他们选择的任何愚蠢的类型都应该没有问题;)
标签: c objective-c char boolean typedef