__STDC_VERSION__ 에대한 표준 Macro를 정의하였습니다.
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L
/* C95 compatible source code. */
#endif
//로 시작하는 주석을 사용할 수 있습니다.
__STDC_VERSION__가 199901L로 정의되면 C99 지원이 가능함을 나타냅니다.
#if __STDC_VERSION__ >= 199901L
/* C99 supported */
#else
/* C99 not supported */
#endif
#define cbrt(X) \
_Generic((X), \
long double: cbrtl, \
default: cbrt, \
float: cbrtf) \
(X)
struct T { int tag; union { float x; int n; }; };
| 기능 | 기능 감지용 매크로 | C99에 정의됨 |
| 분석 기능 (Annex L) | __STDC_ANALYZABLE__ | 정의되지 않음 |
| 메모리 경계 검출 (Annex K) | __STDC_LIB_EXT1__ | 정의되지 않음 |
| 멀티스레드 (<threads.h>) | __STDC_NO_THREADS__ | 정의되지 않음 |
| 아토믹 기능 및 형식 (<stdatomic.h> 및 _Atomic 형 지정자) | __STDC_NO_ATOMICS__ | 정의되지 않음 |
| IEC 60559 부동소수점 산술 연산자 (Annex F) | __STDC_IEC_559__ | 일부 지원 |
| IEC 60559 복소수 산술 연산자 (Annex G) | __STDC_IEC_559_COMPLEX__ | 일부 지원 |
| 복소수 형 (<complex.h>) | __STDC_NO_COMPLEX__ | 필수 사항 |
| 가변 길이 배열 | __STDC_NO_VLA__ | 필수 사항 |
__STDC_VERSION__가 201112L로 정의되면 C11 지원이 가능함을 나타냅니다.
#if __STDC_VERSION__ >= 201112L
// C11 지원
#elif __STDC_VERSION__ >= 199901L
// C99 지원
#else
/* C11, C99 지원하지 않음 */
#endif
http://en.wikipedia.org/wiki/C_(programming_language)
케니스 레인 톰프슨(Kenneth Lane Thompson)에 대하여
(http://en.wikipedia.org/wiki/Brian_Kernighan)
케니스 레인 톰프슨(Kenneth Lane Thompson)의 벨 연구소 페이지
(http://www.cs.bell-labs.com/who/ken/)
데니스 매캘리스테어 리치(Dennis MacAlistair Ritchie)에 대하여
(http://en.wikipedia.org/wiki/Dennis_Ritchie)
데니스 매캘리스테어 리치(Dennis MacAlistair Ritchie)의 홈페이지
(http://www.cs.bell-labs.com/who/dmr/)
브라이언 윌슨 커니핸 (Brian Wilson Kernighan)에 대하여
(http://en.wikipedia.org/wiki/Brian_Kernighan)
http://en.wikipedia.org/wiki/ANSI_C
http://en.wikipedia.org/wiki/C99
http://en.wikipedia.org/wiki/C_preprocessor
C/C++ tip: How to detect the processor type using compiler predefined macros
(http://nadeausoftware.com/articles/2012/02/c_c_tip_how_detect_processor_type_using_compiler_predefined_macros)
C/C++ tip: How to detect the compiler name and version using compiler predefined macros
(http://nadeausoftware.com/articles/2012/10/c_c_tip_how_detect_compiler_name_and_version_using_compiler_predefined_macros)
C/C++ tip: How to detect the operating system type using compiler predefined macros
(http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system)