OC 中 BOOL 和 bool 的区别

作者: StoneN | 来源:发表于2017-08-05 16:17 被阅读165次
说明:

最近在写OC时被问到,为什么我用true/false而不用YES/NO。原因是之前写其他语言时养成了习惯,并将这种习惯带到了OC上。另外我暂时也未发现使用true/false完全替代YES/NO有何弊端。今天突然想起便仔细 Google 了这个问题,方才清楚OCBOOLbool的区别,特此记之。

博客原文:Of BOOL and YES【感谢作者】

简单总结:
  • BOOL is actually a signed char type.
    typedef signed char        BOOL;
    #define YES             (BOOL)1
    #define NO              (BOOL)0
    
  • Avoid comparing BOOL to YES.
    零值的 BOOL 即是 “NO”,而非零的 BOOL 并非 “YES” 除了 1。
    这与我们使用 bool 是不同的:“false” 等价 0,“true” 等价于非零。
    
  • 可在OC代码中使用true/false完全替代YES/NO,因为编译器会在两者之中自动进行正确的类型转换。尽管可能带来一些性能开销,但这些开销实在微不足道。

相关文章

  • OC 中 BOOL 和 bool 的区别

    说明: 最近在写OC时被问到,为什么我用true/false而不用YES/NO。原因是之前写其他语言时养成了习惯,...

  • OC中BOOL和bool的区别

    OC中的BOOL类型占用了一个字节,即是8位进行表示。8位全是0时即是NO,8位之内非0的就是YES,如果整数超过...

  • OC 中的BOOL与bool的区别

    1.BOOL与bool的区别 bool 是0和1 分别对应 -> false/true BOOL 是...

  • BOOL和bool的区别

    一、1、类型不同BOOL为int型bool为布尔型2、长度不同bool只有一个字节BOOL长度视实际环境来定,一般...

  • ios中BOOL和bool的区别

    ios中BOOL和bool的区别 说明:objective-c 中的BOOL 实际上是一种对带符号的字符类型(si...

  • ios中BOOL和bool的区别

    ios中BOOL和bool的区别说明:objective-c 中的BOOL 实际上是一种对带符号的字符类型(sig...

  • OC中BOOL和bool遇到的坑

     抛出问题:今天在做业务的时候,用到了键值编码(KVC赋值)来访问要存取的类的属性的setValue:forKey...

  • iOS中BOOL跟bool的区别

    起因 在技术群里发现有人在问 这一段会输出什么,问这个的原因是他看到博客上都说是输出a no b yes,但是自己...

  • BOOL/bool/Boolean的区别

    学iOS开发算起来应该是一年多的,但是在平常使用布尔值的时候总是随便一用,只知道它们就只有两种值1或者0而已,并没...

  • 基本数据类型的有关概念

    bool和BOOL的区别 说明:Objective-C 中的BOOL 实际上是一种对带符号的字符类型(signed...

网友评论

    本文标题:OC 中 BOOL 和 bool 的区别

    本文链接:https://www.haomeiwen.com/subject/mwtwlxtx.html