C11 - неофициальное название более старой стандартной версии (ISO/IEC 9899:2011) языка программирования C.

Важное примечание: Все вопросы, связанные с C, должны быть помечены как c, а затем в качестве дополнения каждый должен указывать версию стандарта, который он использует. В случае C11 этим дополнением должен быть тег c11.

Обнаружение

Стандартный макрос __STDC_VERSION__ определяется значением 201112Lчтобы указать, что доступна поддержка C11. См. Корр 1:2012.

Некоторые изменения по сравнению с c99:

  • _Alignas спецификатор (и, возможно, alignas макрос)
  • _Alignof оператор (и, возможно, alignof макрос)
  • _Noreturn спецификатор функции (и необязательно noreturn макрос)
  • _Generic ключевое слово
  • _Static_assert ключевое слово (и необязательно static_assert макрос)
  • _Thread_local спецификатор класса хранения (и, возможно, thread_local макрос)
  • _Atomic квалификатор типа
  • _Complex а также _Imaginary ключевые слова (и, возможно, complex а также imaginary макросы)
  • once_flag, cnd_t, mtx_t, thrd_t, thrd_start_t, tss_t а также tss_dtor_t типы
  • char16_t а также char32_t типы
  • анонимный struct а также union поддержка
  • aligned_alloc функция
  • quick_exit функция
  • gets_sфункция в сильно отвергнутом необязательном Приложении K (см. tr24731) в качестве альтернативы удаленномуgets

Больше информации: