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