C99 существует уже более 10 лет, но поддержка для него идет медленно, поэтому большинство разработчиков застряли на C89. Даже сегодня я иногда слегка удивляюсь, когда сталкиваюсь с функциями C99 в коде C.Каковы наиболее полезные новые функции на C99?
Теперь, когда большинство основных компиляторов поддерживают C99 (MSVC является заметным исключением, а некоторые встроенные компиляторы также отстают), я считаю, что разработчики, которые работают с C, вероятно, должны знать, какие функции C99 доступны для них. Некоторые из функций - это обычные функции, которые раньше не были стандартизованы (например, snprintf
) или знакомы с C++ (размещение объявления гибкой переменной или однострочные комментарии //
), но некоторые из новых функций были впервые представлены на C99 и незнакомы многим программистам.
Что вы найдете в списке самых полезных функций C99?
Для справки, the C99 standard (обозначен как черновик, но идентичный обновленному стандарту, насколько мне известно), list of new features и GCC C99 implementation status.
Одна функция за каждый ответ, пожалуйста; не стесняйтесь оставлять несколько ответов. Приводятся примеры коротких примеров, демонстрирующих новые функции.
Должна быть аналогичная wiki для функций, которые люди * ненавидят * в C99! –
Ну, возник вопрос о вредных или неподдерживаемых функциях C99 http://stackoverflow.com/questions/1898890/what-c99-features-are-considered-harmful-or-unsupported –
Спасибо. Вы должны изменить текст ссылки, чтобы указать, что это черновик, а не фактический стандарт, и ссылка на n1256, пока вы на нем :-). BTW, глядя на http://gcc.gnu.org/c99status.html, я бы не сказал, что большая часть C99 поддерживается gcc. А поскольку gcc является одним из наиболее широко используемых компиляторов C, ... –