代码之家  ›  专栏  ›  技术社区  ›  Konrad

预处理器指令#if和#ifdef之间的差异

  •  56
  • Konrad  · 技术社区  · 15 年前

    #if
    

    #ifdef
    
    2 回复  |  直到 10 年前
        1
  •  124
  •   Greg Hewgill    15 年前

    您可以通过执行以下操作来演示差异:

    #define FOO 0
    #if FOO
      // won't compile this
    #endif
    #ifdef FOO
      // will compile this
    #endif
    

    #if 检查 价值 #ifdef 检查 存在 符号的名称(不考虑其值)。

        2
  •  40
  •   ereOn    15 年前
    #ifdef FOO
    

    是以下项的快捷方式:

    #if defined(FOO)
    

    #if 也可以用于其他测试或更复杂的预处理器条件。

    #if defined(FOO) || defined(BAR)