Опубликован новый стандарт языка C: C11
Международная Огранизация по Стандартизации (ISO) опубликовала новый международный стандарт языка программирования C: ISO/IEC 9899:2011, ранее известный как C1X. Основные изменения:
поддержка многопоточности;
улучшенная поддержка юникода;
обобщенные макросы (type-generic expressions, позволяют статичную перегрузку);
анонимные структуры и объединения (упрощают обращение ко вложенным конструкциям);
управление выравниванием объектов;
статичные утверждения (static assertions);
удаление опасной функции gets (в пользу безопасной gets_s);
функция quick_exit;
спецификатор функции _Noreturn;
новый режим эксклюзивного открытия файла.
Кроме того, определен ряд необязательных для реализации возможностей, включая новый набор безопасных функций (в т. ч. для работы с массивами с проверкой границ). В этот список также попали возможности, которые в предыдущем стандарте считались обязательными: комплексная арифметика, массивы переменной длины.
Некоторые возможности нового стандарта уже поддерживаются компиляторами GCC и Clang. Стоит, однако, отметить, что полной поддержки предыдущего стандарта C99 в этих и большинстве других компиляторов нет.
Последний черновик стандарта
поддержка многопоточности;
улучшенная поддержка юникода;
обобщенные макросы (type-generic expressions, позволяют статичную перегрузку);
анонимные структуры и объединения (упрощают обращение ко вложенным конструкциям);
управление выравниванием объектов;
статичные утверждения (static assertions);
удаление опасной функции gets (в пользу безопасной gets_s);
функция quick_exit;
спецификатор функции _Noreturn;
новый режим эксклюзивного открытия файла.
Кроме того, определен ряд необязательных для реализации возможностей, включая новый набор безопасных функций (в т. ч. для работы с массивами с проверкой границ). В этот список также попали возможности, которые в предыдущем стандарте считались обязательными: комплексная арифметика, массивы переменной длины.
Некоторые возможности нового стандарта уже поддерживаются компиляторами GCC и Clang. Стоит, однако, отметить, что полной поддержки предыдущего стандарта C99 в этих и большинстве других компиляторов нет.
Последний черновик стандарта
Ещё новости по теме:
18:20