Is there a #define for C99?

前端 未结 2 1159
我在风中等你
我在风中等你 2020-12-14 08:36

I want to do something in C99 one way, otherwise to perform it another way. What is the #define to check for?

#ifdef C99
...
#else
...
#endif
         


        
2条回答
  •  被撕碎了的回忆
    2020-12-14 09:01

    There is not an specific #define value. Just check __STDC_VERSION__ and define it yourself! ;-)

    #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
    

    EDIT: A more general snippet, from here. I've just changed the defined names, just in case you'll use them a lot on the code:

    #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
    

提交回复
热议问题