C中#if 1的意义是什么?

时间:2014-07-04 12:14:28

标签: c c-preprocessor preprocessor-directive

我发现了一些带有#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:

2 个答案:

答案 0 :(得分:2)

这是一个玩这个代码的人的遗物。它绝对没有任何作用,但将1更改为0,#if#endif之间的区域将从编译中排除。

答案 1 :(得分:1)

if是“什么都不做”,但如果你想要快速禁用的内容包含在内,那么它会很有用。

它比大块注释更好,因为它允许内部块注释。