【问题标题】:What is the significance of #if 1 in C [duplicate]C中#if 1的意义是什么[重复]
【发布时间】:2014-07-04 12:14:28
【问题描述】:

我发现了一些带有#if 语句类型的程序。这个#if 1有什么意义?这是代码片段:

   for (;;) {
        register const uint8_t* m_pos;
        unsigned m_off;
        unsigned m_len;
        unsigned dindex;

        D_INDEX1(dindex,ip);
        GINDEX(m_pos,m_off,dict,dindex,in);
        if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,M4_MAX_OFFSET))
        goto literal;
#if 1
    if (m_off <= M2_MAX_OFFSET || m_pos[3] == ip[3])
    goto try_match;
    D_INDEX2(dindex,ip);
#endif
    GINDEX(m_pos,m_off,dict,dindex,in);
    if (LZO_CHECK_MPOS_NON_DET(m_pos,m_off,in,ip,M4_MAX_OFFSET))
        goto literal;
    if (m_off <= M2_MAX_OFFSET || m_pos[3] == ip[3])
        goto try_match;
    goto literal;

 try_match:

【问题讨论】:

  • 基本上它不是评论。您可以将其更改为 0 并快速“取消”处理 #if 和 #endif 之间的语句。这是给程序员的。

标签: c c-preprocessor preprocessor-directive


【解决方案1】:

这是有人在玩代码的遗物。它什么也不做,只是将 1 更改为 0,并且 #if#endif 之间的区域被排除在编译之外。

【讨论】:

    【解决方案2】:

    if 是“什么都不做”,但如果其中包含的代码是您想要快速禁用的东西,它会很有用。

    它比大块注释要好一些,因为它允许在内部使用块 cmets。

    【讨论】:

      猜你喜欢
      • 2019-10-28
      • 2021-12-24
      • 2015-01-04
      • 2019-08-21
      • 2015-05-27
      • 2021-12-12
      • 2017-02-17
      • 2011-01-22
      相关资源
      最近更新 更多