Что такое C17 и какие изменения были внесены в язык?

Когда я проверял новости о GCC 8, я увидел, что они добавили поддержку версии языка C 2017 года (не C++17, а на самом деле C17). Но я не могу найти информацию об этом в Интернете.

Это новая версия ISO, такая как C11, или просто кодовое имя, используемое командой GCC для некоторых исправлений в их компиляторе?

2 ответа

Решение

Согласно справке GCC, C17 на самом деле версия с исправлением ошибок C11 стандарт с разрешением DR.

C17, версия с исправлением ошибок стандарта C11 с интегрированными разрешениями DR, скоро пойдет на голосование. Этот патч добавляет соответствующие параметры -std=c17, -std=gnu17 (новая версия по умолчанию, замена -std=gnu11 по умолчанию), -std=iso9899:2017, Как стандартная версия с исправлением ошибок, нет необходимости flag_isoc17 или любые варианты предупреждений о совместимости; Тем не менее, есть новый __STDC_VERSION__ значение, поэтому новые языки cpplib CLK_GNUC17 а также CLK_STDC17 добавлены для поддержки использования этого нового значения с новыми параметрами. (Если стандарт в конечном итоге будет опубликован в 2018 году и будет известен как C18, псевдонимы опций могут быть добавлены. Обратите внимание, что -std=iso9899:199409 соответствует __STDC_VERSION__ ценность, а не дата публикации.)

(Есть несколько решений DR, которые необходимо реализовать в GCC, но это не зависит от новых опций.)

Таким образом, нет новых функций, включенных в C17.

Cppreference (История C) говорит:

Будущее развитие

C17 Следующая дополнительная редакция стандарта языка C, будет включать все принятые отчеты о дефектах C11, но без новых функций.

ОБНОВИТЬ:

  • 2018: C17 (ISO / IEC 9899: 2018) ( ISO Store) ( окончательный вариант) Включает амортизацию ATOMIC_VAR_INIT и исправления в следующих отчетах о дефектах:

[DR 400], [DR 401], [DR 402], [DR 403], [DR 404], [DR 405], [DR 406], [DR 407], [DR 410], [DR 412], [DR 414], [DR 415], [DR 416], [DR 417], [DR 419], [DR 423], [DR 426], [DR 428], [DR 429], [DR 430], [DR 431], [DR 433], [DR 434], [DR 436], [DR 437], [DR 438], [DR 439], [DR 441], [DR 444], [DR 445], [DR 447], [DR 448], [DR 450], [DR 452], [DR 453], [DR 457], [DR 458], [DR 459], [DR 460], [DR 462], [DR 464], [DR 465], [DR 468], [DR 470], [DR 471], [DR 472], [DR 473], [DR 475], [DR 477], [DR 480], [DR 481], [DR 485], [DR 487], [DR 491]

C17 является "выпуском исправления" стандарта C на языке how " M.S Chaudhari заметил, однако, есть очень полезная информация, подготовленная Jens Gustedt автор "Modern C" книга.


Он определил следующий список изменений в C17 по сравнению с C11:

Ссылка на главную страницу C17.


Кроме того, этот контент будет обновляться Jens Вы можете следить за обновлением здесь Блог Джинса Гастдта.

P.S: before posting all this stuff I received approval from the author.

Другие вопросы по тегам