• <small id='TcANn'></small><noframes id='TcANn'>

    <tfoot id='TcANn'></tfoot>
    <i id='TcANn'><tr id='TcANn'><dt id='TcANn'><q id='TcANn'><span id='TcANn'><b id='TcANn'><form id='TcANn'><ins id='TcANn'></ins><ul id='TcANn'></ul><sub id='TcANn'></sub></form><legend id='TcANn'></legend><bdo id='TcANn'><pre id='TcANn'><center id='TcANn'></center></pre></bdo></b><th id='TcANn'></th></span></q></dt></tr></i><div id='TcANn'><tfoot id='TcANn'></tfoot><dl id='TcANn'><fieldset id='TcANn'></fieldset></dl></div>

        • <bdo id='TcANn'></bdo><ul id='TcANn'></ul>
        <legend id='TcANn'><style id='TcANn'><dir id='TcANn'><q id='TcANn'></q></dir></style></legend>

        将 BOOL 与 YES 进行比较是否危险?

        时间:2023-10-05

      1. <i id='HMJLb'><tr id='HMJLb'><dt id='HMJLb'><q id='HMJLb'><span id='HMJLb'><b id='HMJLb'><form id='HMJLb'><ins id='HMJLb'></ins><ul id='HMJLb'></ul><sub id='HMJLb'></sub></form><legend id='HMJLb'></legend><bdo id='HMJLb'><pre id='HMJLb'><center id='HMJLb'></center></pre></bdo></b><th id='HMJLb'></th></span></q></dt></tr></i><div id='HMJLb'><tfoot id='HMJLb'></tfoot><dl id='HMJLb'><fieldset id='HMJLb'></fieldset></dl></div>
        • <small id='HMJLb'></small><noframes id='HMJLb'>

            <legend id='HMJLb'><style id='HMJLb'><dir id='HMJLb'><q id='HMJLb'></q></dir></style></legend>
              <tbody id='HMJLb'></tbody>

              • <bdo id='HMJLb'></bdo><ul id='HMJLb'></ul>

              • <tfoot id='HMJLb'></tfoot>
                  本文介绍了将 BOOL 与 YES 进行比较是否危险?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我今天在一个源文件中发现了一条评论:

                  I found a comment today in a source file:

                  //  - no longer compare BOOL against YES (dangerous!)
                  

                  在 Objective-C 中比较 BOOLYES 真的那么危险吗?为什么是这样?

                  Is comparing BOOL against YES in Objective-C really that dangerous? And why is that?

                  YES 的值可以在运行时改变吗?也许 NO 总是 0YES 可以是 12>3 - 取决于运行时、编译器、链接的框架?

                  Can the value of YES change during runtime? Maybe NO is always 0 but YES can be 1, 2 or 3 - depending on runtime, compiler, your linked frameworks?

                  推荐答案

                  问题是BOOL不是原生类型,而是typedef:

                  The problem is that BOOL is not a native type, but a typedef:

                  typedef signed char      BOOL;
                  
                  #define YES             (BOOL)1
                  #define NO              (BOOL)0
                  

                  作为一个字符,它的值不受 TRUEFALSE 的限制.另一个值会发生什么?

                  As a char, its values aren't constrained to TRUE and FALSE. What happens with another value?

                  BOOL b = 42;
                  if (b)
                  {
                      // true
                  }
                  if (b != YES)
                  {
                      // also true
                  }
                  

                  这篇关于将 BOOL 与 YES 进行比较是否危险?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:插入 BOOL 的 Objective-C 字典 下一篇:在 Swift 中将 String 转换为 Bool - 通过 API 或大多数类似 Swift 的方法

                  相关文章

                  1. <i id='15KT2'><tr id='15KT2'><dt id='15KT2'><q id='15KT2'><span id='15KT2'><b id='15KT2'><form id='15KT2'><ins id='15KT2'></ins><ul id='15KT2'></ul><sub id='15KT2'></sub></form><legend id='15KT2'></legend><bdo id='15KT2'><pre id='15KT2'><center id='15KT2'></center></pre></bdo></b><th id='15KT2'></th></span></q></dt></tr></i><div id='15KT2'><tfoot id='15KT2'></tfoot><dl id='15KT2'><fieldset id='15KT2'></fieldset></dl></div>
                  2. <small id='15KT2'></small><noframes id='15KT2'>

                        <bdo id='15KT2'></bdo><ul id='15KT2'></ul>

                    1. <tfoot id='15KT2'></tfoot>

                      <legend id='15KT2'><style id='15KT2'><dir id='15KT2'><q id='15KT2'></q></dir></style></legend>