Есть ли #define для C99? Я хочу сделать что-то на C99 в одну сторону, иначе это нужно сделать другим способом. Что такое #define для проверки? #ifdef C99 ... #else ... #endif Ответ 1 Не существует определенного значения #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 EDIT: Более общий фрагмент, отсюда. Я только что изменил определенные имена, на всякий случай, если вы будете использовать их много в коде: #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 # endif #endif Ответ 2 #if __STDC_VERSION__ == 199901L /* C99 */ #else /* not C99 */ #endif Измените == на >=, если вы хотите протестировать C99 и более поздние версии.
Ответ 1 Не существует определенного значения #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 EDIT: Более общий фрагмент, отсюда. Я только что изменил определенные имена, на всякий случай, если вы будете использовать их много в коде: #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 # endif #endif
Ответ 2 #if __STDC_VERSION__ == 199901L /* C99 */ #else /* not C99 */ #endif Измените == на >=, если вы хотите протестировать C99 и более поздние версии.