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

C99是否有定义?

  •  22
  • klynch  · 技术社区  · 16 年前

    我想用C99的一种方式做一些事情,否则就用另一种方式来做。什么是 #define 要检查一下吗?

    #ifdef C99
    ...
    #else
    ...
    #endif
    
    2 回复  |  直到 7 年前
        1
  •  33
  •   mwfearnley user560731    7 年前

    没有具体的 #define 价值。只要检查 __STDC_VERSION__ 自己定义!;-)

    #if __STDC_VERSION__ >= 199901L
    /* C99 code */
    #define C99
    #else
    /* Not C99 code */
    #endif
    
    
    #ifdef C99
    /*My code in C99 format*/
    #else
    /*My code in C99 format*/
    #endif
    

    编辑: 更一般的片段, from here . 我刚刚更改了定义的名称,以防在代码中大量使用它们:

    #if defined(__STDC__)
    # define C89
    # if defined(__STDC_VERSION__)
    #  define C90
    #  if (__STDC_VERSION__ >= 199409L)
    #   define C94
    #  endif
    #  if (__STDC_VERSION__ >= 199901L)
    #   define C99
    #  endif
    #  if (__STDC_VERSION__ >= 201112L)
    #   define C11
    #  endif
    # endif
    #endif
    
        2
  •  23
  •   Alok Singhal    16 年前
    #if __STDC_VERSION__ == 199901L
    /* C99 */
    #else
    /* not C99 */
    #endif
    

    变化 == 到 >= 如果您想测试C99及更高版本。