代码之家  ›  专栏  ›  技术社区  ›  Richard J. Ross III

C'TRUE;'语句

  •  1
  • Richard J. Ross III  · 技术社区  · 14 年前

    if (file == NULL)
         TRUE; /* <-- What does that mean? */
    

    我认为这是另一种说法:

    if (file == NULL);
    

    但是我是否遗漏了什么,有没有理由用第一种方式来做而不是第二种方式?

    更新:

    #define TRUE !0
    
    3 回复  |  直到 13 年前
        1
  •  7
  •   Michael Burr    14 年前

    只是一个猜测-我怀疑在历史的某个时刻,有人想在那一行上设置一个断点。

    我和调试器一起工作过,在调试器中这样做可能比设置条件断点更容易。但这已经很久很久没有可能是真的了。如果我要中断的条件涉及函数调用,或者条件断点使速度减慢太多(在嵌入式目标上经常发生这种情况,其中调试器中的条件求值涉及JTAG链接上的大量通信),我仍然会发现自己在某些环境中做类似的事情。

    但是,这并不能使代码成为版本控制。

        2
  •  3
  •   Keynslug    14 年前

    我认为这样写是为了摆脱烦人的编译器警告。

    对于MSVC来说,第二条语句确实会导致编译器发出警告 empty controlled statement 或者类似的。然而 TRUE; 是常规有效的非空语句。

        3
  •  2
  •   arsenm    14 年前

    推荐文章