Я знаю, что компиляторы используют __STDC__
, чтобы указать, что компилятор является стандартом C, и оттуда вы можете использовать __STDC_VERSION__
, чтобы выяснить, какой уровень используемого вами стандарта.
Я также знаю, что C90 не имеет значения, поправка C90 1 имеет 199401L
, а C99 имеет 199901L
.
В последнем черновом варианте C1x, который у меня есть, он просто обозначается как 201ymmL
, и я предполагаю, что в окончательном стандарте его значение было менее "неопределенным".
Я предполагаю, что это будет 201112L
, поскольку именно тогда С11 был ратифицирован, но я бы хотел быть уверенным.
Я думал, что смогу попробовать gcc -std=c1x
, но версия gcc
, которую я использую, пока не поддерживает это.
Кто-нибудь знает, каково действительное значение?