Существует ли #define для C99?

Я хочу сделать что-то в C99 один путь, иначе выполнить его иначе. Что #define проверять на?

#ifdef C99
...
#else
...
#endif
22
задан Jens 2 October 2011 в 18:59
поделиться

2 ответа

Не существует определенного значения #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
34
ответ дан 29 November 2019 в 03:57
поделиться
#if __STDC_VERSION__ == 199901L
/* C99 */
#else
/* not C99 */
#endif

Изменение == - > = , если вы хотите проверить на C99, а затем.

23
ответ дан 29 November 2019 в 03:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: