The correct title of this article is __STDC_VERSION__ even though for technical reasons the wiki displays it without underscores.
__STDC_VERSION__
is a macro defined by the implementation (compiler + standard library) to indicate which version of the Standard it is complying with. It was not specified in the first (C90) version of the Standard, so legally a C90 compiler could set __STDC_VERSION__
to a value greater than 199409L; the likelihood of this is debatable. (Likewise, a compiler that doesn't claim conformance to any standard is entirely free to define __STDC_VERSION__ in any way it likes, and therefore relying only on this macro for conformance information is unwise.)
Standard | __STDC_VERSION__ |
C89/C90 | Not defined by the Standard (should be #undef d)
|
C94 | 199409L |
C99 | 199901L |