代码之家  ›  专栏  ›  技术社区  ›  Andy Bowskill

为什么Objective-C布尔数据类型被定义为有符号字符?

  •  4
  • Andy Bowskill  · 技术社区  · 16 年前

    引起我兴趣的是Objective-C的bool类型定义。

    为什么它被定义为 signed char (如果为其分配的长度大于1字节的值,则可能导致意外行为)而不是 int ,就像C所做的那样(误差幅度要小得多:零值为假,非零值为真)?

    我能想到的唯一原因是Objective-C设计师对存储进行了微优化,因为 char 使用的内存比 int . 有人能开导我吗?

    1 回复  |  直到 16 年前
        1
  •  6
  •   Peter Coulton    16 年前

    记住,Objective-C创建于20世纪80年代,当时保存字节非常重要。

    正如评论中提到的,只要你坚持“是”和“否”的值,一切都会好起来的。