23

私は C99 で何かをやりたいと思っています。何#defineをチェックするのですか?

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

2 に答える 2

37

特定の#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

編集:ここからのより一般的なスニペット。コードで頻繁に使用する場合に備えて、定義済みの名前を変更しました。

#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
于 2010-01-22T08:13:32.873 に答える
24
#if __STDC_VERSION__ == 199901L
/* C99 */
#else
/* not C99 */
#endif

C99 以降をテストする場合は、に変更==>=ます。

于 2010-01-22T08:11:29.297 に答える