Где мне найти текущие стандартные документы C или C ++?

На многие вопросы ответ, кажется, можно найти в «стандарте». Однако где мы это находим? Желательно онлайн.

Иногда поиск в Google может показаться бесполезным, особенно в отношении стандартов C, поскольку они тонут в потоке дискуссий на форумах по программированию.

Для начала, поскольку это те, которые я ищу прямо сейчас, где есть хорошие онлайн-ресурсы для:

  • C89
  • C99
  • C11
  • C++98
  • C++03
  • C++11
  • C++14
  • C++17

person Community    schedule 17.09.2008    source источник
comment
Обзор мне известен - я упоминаю книгу только как возможный способ получить эталон очень недорого. Но я полагаю, что люди тоже должны знать об обзоре. Я бы посоветовал просто игнорировать аннотационную часть книги, если вам нужна недорогая стандартная печатная копия (это то, что я делаю).   -  person Jonathan Leffler    schedule 01.09.2014


Ответы (11)


PDF versions of the standard

По состоянию на 1 сентября 2014 г. лучшие места по цене для документов стандартов C и C ++ в формате PDF:

Обычно вы не можете получить старые версии стандарта (любого стандарта) непосредственно от органов по стандартизации вскоре после выпуска новой редакции стандарта. Таким образом, стандарты для C89, C90, C99, C ++ 98, C ++ 03 будет трудно найти для покупки в органе по стандартизации. Если вам нужна старая версия стандарта, проверьте Techstreet как один из возможных источников. Например, он по-прежнему может предоставлять канадскую версию стандарта CAN / CSA-ISO / IEC 9899: 1990 в формате PDF за плату.

Non-PDF electronic versions of the standard

Печатные копии стандартов можно получить в национальных органах по стандартизации и в ISO, но они очень дороги.

Если вам нужна печатная копия стандарта C90 за гораздо меньшие деньги, чем указано выше, вы можете найти дешевую бывшую в употреблении копию Книга Херба Шильдта Аннотированный стандарт ANSI на Amazon, который содержит фактический текст стандарта (полезный) и комментарий к стандарту (менее полезный - он содержит несколько опасных и вводящих в заблуждение ошибок).

Стандарты C99 и C ++ 03 доступны в виде книги от Wiley и BSI (Британского института стандартов):

Standards committee draft versions (free)

Рабочие проекты будущих стандартов часто доступны на сайтах комитетов:

Если вы хотите получить черновики из текущих или более ранних стандартов C / C ++, некоторые из них доступны бесплатно в Интернете:

For C:

For C++:

Обратите внимание, что эти документы не совпадают со стандартом, хотя версии непосредственно перед собраниями, на которых решается вопрос о стандарте, обычно очень близки к тому, что содержится в окончательном стандарте. Версии FCD (Final Committee Draft) защищены паролем; вы должны быть членом комитета по стандартам, чтобы получить их.

Несмотря на то, что черновые версии могут быть очень близки к окончательным ратифицированным версиям стандартов, некоторые редакторы этого поста настоятельно рекомендуют вам получить копию фактических документов - особенно если вы планируете цитировать их в качестве ссылок. Конечно, голодающие студенты должны пойти дальше и использовать шашки, если у них нет денег.


Похоже, что если вы готовы и можете подождать несколько месяцев после ратификации стандарта, поиск стандарта при поиске стандарта является ключевым. Таким образом, один из редакторов этой публикации смог найти стандарты C11 и C ++ 11 по разумным ценам. Например, если вы ищете INCITS / ISO / IEC 9899: 2011 вместо ISO / IEC 9899: 2011 на webstore.ansi. org вы найдете PDF-версию по разумной цене.


Сайт https://wg21.link/ предоставляет короткие URL-ссылки на текущий рабочий проект C ++ и проекты стандартов, и документы комитета:


Текущий проект стандарта поддерживается как исходники LaTeX на Github. Эти источники можно преобразовать в HTML с помощью cxxdraft-htmlgen. Следующие сайты поддерживают созданные таким образом HTML-страницы:

Тим Сонг также поддерживает сгенерированные HTML- и PDF-версии Networking TS и Ranges TS.

POSIX extensions to the C standard

Стандарт POSIX (IEEE 1003.1) требует, чтобы совместимая операционная система включала компилятор C. Этот компилятор, в свою очередь, должен соответствовать стандарту C, а также поддерживать различные расширения, определенные в разделе системных интерфейсов POSIX (например, тип данных off_t, заголовок <aio.h>, функция clock_gettime() и макрос _POSIX_C_SOURCE.)

Итак, если вы пытались найти конкретную функцию, вас проинформировали, что эта функция является частью POSIX, а не стандарта C, и вы задаетесь вопросом, почему стандарт операционной системы требует функций компилятора и языковых расширений ... теперь вы знаете!

  • POSIX.1-2001: раздел «Системные интерфейсы» можно загрузить как отдельный документ с сайта https://mirror.math.princeton.edu/pub/oldlinux/download/c951.pdf. В разделе 1.7 указано, что соответствующая версия стандарта C - C99.

    Раздел Shell и Utilities (https://mirror.math.princeton.edu/pub/oldlinux/download/c952.pdf) требует, чтобы не только существовал C99-совместимый компилятор, но и чтобы его можно было вызывать из командной строки под именем c99. Одним из способов реализации этого является размещение сценария оболочки c99 в / usr / bin, который вызывает gcc с параметром -std=c99, добавленным в список параметров командной строки, и блокирует указание любых конкурирующих стандартов.

    В POSIX.1-2001 было два технических исправления, одно от 2002 года, а другое от 2004 года. Я не думаю, что они включены в документы, указанные выше. Есть онлайн-версия HTML с исправлениями по адресу https://pubs.opengroup.org/onlinepubs/009695399/ - но я должен добавить, что у меня были проблемы с окном поиска, поэтому использование Google для поиска по сайту, вероятно, будет вашим лучшим выбором.

    Есть платная ссылка для загрузки первого исправления по адресу https://standards.ieee.org/standard/1003_1-2001-Cor1-2002.html.

    Для второго также есть платная ссылка на https://standards.ieee.org/standard/1003_1-2001-Cor2-2004.html

  • Черновая версия POSIX.1-2008 находится по адресу http://www.open-std.org/jtc1/sc22/open/n4217.pdf.

    POSIX.1-2008 также содержит два технических исправления, последнее из которых датировано 2016 годом. Существует онлайн-версия стандарта в формате HTML, включающая исправления по адресу https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/ - хотя, опять же, у меня были ситуации, когда собственное окно поиска на сайте не подходило для поиск информации.

  • Онлайн-версия POSIX.1-2017 в формате HTML находится по адресу https://pubs.opengroup.org/onlinepubs/9699919799/ - хотя, опять же, я рекомендую использовать Google вместо окна поиска на этом сайте. Согласно веб-сайту Open Group IEEE 1003.1-2017 ... является пересмотром 1003.1-2008 стандарт для объединения стандарта, включая два его технических исправления (как есть). manpages Linux описывают его как технически идентичный POSIX.1- 2008 г. с применением технических исправлений 1 и 2. Следовательно, это не основная версия и не меняет значение макроса _POSIX_C_SOURCE.

person Community    schedule 17.09.2008
comment
Книга Шильдта (которая, я думаю, больше не издается) была намного дешевле, чем печатная копия действительного стандарта. Было высказано предположение, что разница в цене отражает ценность аннотаций. Каждый экземпляр книги должен сопровождаться распечаткой Клайва Д.У. Annotated Annotated C Standard от Feather. (Обратите внимание, что в книге Шильдта отсутствует некоторый вводный материал.) - person sbi; 03.02.2011
comment
Сам стандарт C99 недоступен в Интернете. Я думаю, что ANSI берет за это 30 долларов. Но [n1256.pdf] (open-std.org /jtc1/sc22/wg14/www/docs/n1256.pdf), который является бесплатным, включает стандарт C99 с тремя объединенными в него техническими исправлениями, отмеченными полосами изменений. Я считаю его более полезным, чем сам стандарт C99. - person Wiz; 03.06.2011
comment
Стандарт c ++ 11 теперь доступен в интернет-магазине ANSI: . ansi.org/RecordDetail.aspx?sku=ISO%2fIEC+14882%3a2011 Но, похоже, он еще дороже - 403 доллара. Я действительно надеялся, что это будет 10% от этого ... - person Michael Burr; 03.06.2011
comment
Цены на предыдущие версии стандартов в формате PDF в размере 30 долларов были установлены после того, как INCITS ратифицировал стандарт. Я понятия не имею, почему версии стандартов INCITS намного дешевле. Я также понятия не имею, сколько времени потребуется для стандартов C и C ++ 2011 года (если это вообще произойдет). Даже не знаю, что такое INCITS. - person Keith Thompson; 10.12.2011
comment
Теперь доступна версия стандарта C ++ 11 INCITS за 30 долларов. - person Keith Thompson; 10.12.2011
comment
@Alek: Я просто указывал, что для людей, которые хотели вариант с нулевой стоимостью, бесплатные черновики довольно близки к выпущенным официальным документам. - person matthias; 10.12.2011
comment
@MichaelBurr, весь стандарт можно бесплатно найти на www.open-std.org, поскольку у вас есть принятый ответ, как насчет изменения ссылок на бесплатные? - person Michael Burr; 22.01.2012
comment
@MichaelBurr, INCITS - главная организация в США, которая работает с ISO, именно так ANSI советует ISO JTC1, ИТ-подразделение ISO. Недавно нам пришлось столкнуться с ними в связи со стандартами SQL, которые мы выполняем на работе. Как только вы начнете играть с этими ребятами, вы поймете, насколько гидрой является этот процесс стандартизации :-) - person Michael Burr; 08.03.2012
comment
@ 0xC0000022L и Майкл Берр - может быть полезно добавить фактическую дату рядом с текстом _1_. - person Michael Burr; 12.06.2012
comment
Как мы узнаем, когда официально выпущены новые версии любого из этих документов? - person Shahbaz; 14.06.2012
comment
Стандарт ISO 9899: 1999 не может быть получен бесплатно. TC3 распространялся бесплатно, но ISO / IEC 9899: 1999: TC3 не распространяется и никогда не распространялся бесплатно. Обратите внимание, что TC1 до 9899: 2011 доступен бесплатно здесь: webstore.iec.ch/corrigenda/iso/isoiec9899-cor1%7Bed1.0%7Den.pdf - person paxdiablo; 04.09.2012
comment
@ouah: это со страницы WG14, на которую есть ссылка на стандарт C99: Самая последняя общедоступная версия стандарта C99 - это комбинированная C99 + TC1 + TC2 + TC3, WG14 N1256 [open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf] от 07.09.2007. Это рабочий документ WG14, но он отражает сводный стандарт на момент публикации. - person Dan Nissenbaum; 04.12.2012
comment
Ссылка на версию ANSI.org C ++ 03 больше не работает. Я предполагаю, что это может быть потому, что она была заменена версией C ++ 11? - person Dan Nissenbaum; 04.12.2012
comment
stackoverflow.com/questions/3038976/c-reference-book?lq=1 имеет также несколько полезных ссылок. - person ouah; 22.12.2012
comment
Проблема с книгой Шлидта заключается в том, что ее нельзя не заметить. Это одна из немногих книг, которые я выбросил. Выбирайте этот вариант, только если вы действительно настолько бедны, что у вас нет выбора. - person Michael Burr; 22.01.2013
comment
На связанном веб-сайте нет ничего похожего на последний рабочий проект стандарта C ++ ... он по-прежнему говорит, что n3797 является последним. - person NHDaly; 30.11.2013
comment
Теперь доступна версия стандарта C ++ 14 INCITS за 60 долларов. - person ; 04.06.2014
comment
Из критики книги Шильдта. Предположение, что 1 байт = 8 бит, встречается в нескольких других местах книги. Я не буду всегда указывать на это. Разве байт по определению не всегда равен 8 битам? Существуют ли платформы, на которых байт относится к разному количеству битов? - person Persixty; 28.11.2014
comment
@AlexReinking: стандарт C не требует, чтобы байт был 8-битным (в основном, байт должен быть наименьшей адресуемой единицей памяти на платформе, но он должен быть не менее 8 бит). 8-битные байты в значительной степени являются нормой, но я слышал о DSP, которые имеют 16-битные байты. В колледже я работал на необычной машине Univac с 9-битным байтом (codingforum. org / thread7407-6.html # post50838). Обратите внимание, что POSIX указывает, что _1_ равно 8: pubs.opengroup.org/onlinepubs /9699919799/basedefs/limits.h.html - person Ben Voigt; 09.01.2015
comment
@Michael Burr - спасибо за информацию! Даже встраиваемые системы, с которыми я работал, имели 8-битные байты. Думаю, я всегда считал их фиксированными единицами измерения, такими как метрика или что-то в этом роде. - person Michael Burr; 10.05.2016
comment
Возможно, стоит отметить эту строчку из стандарта C 2018: «В этой редакции нет серьезных изменений, только технические исправления и пояснения». - person Alex Reinking; 16.05.2016
comment
Стандарты также можно купить на веб-сайте ISO по более низкой цене. Например, C17 дешевле на 40 долларов. - person Michael Burr; 16.05.2016
comment
Стандарты C89 / C90, C99 и C11 доступны здесь: stackoverflow.com/a/17015061 - person Alex Reinking; 17.05.2016
comment
В Интернете есть черновик C89 по адресу https://web.archive.org/web/20161223125339/http://flash-gordon.me.uk/ansi.c.txt. Есть ли у кого-нибудь возражения против моего редактирования приведенного выше ответа, чтобы добавить эту ссылку? - person Eric Postpischil; 31.07.2018
comment
cppreference.com сообщает, что N4860 является окончательным рабочим проектом для C ++ 20, и разместил ссылку на isocpp.org/files/papers/N4860.pdf. Я не редактировал это в приведенном выше тексте, так как не могу найти официального объявления об этом. Но cppreference.com имеет очень хорошую репутацию и, вероятно, прав. - person MCCCS; 04.11.2018
comment
Что касается последнего редактирования - я процитировал обсуждение страницы обсуждения Википедии как одну из причин изменения C18 на C17 / C18. Это обсуждение находится на en.wikipedia.org/wiki/Talk:C17_(C_standard_revision ) # C17_vs_C18, и я могу снова отредактировать, чтобы изменить C17 / C18 на C17 позже. - person COrNotToC; 07.01.2019
comment
Кроме того, на странице руководства для gcc 10.2 указано имя C17 и указано, что и -std = c17, и -std = c18 приведут к тому, что C17 будет использоваться в качестве стандарта: «ISO C17, версия стандарта ISO C 2017 г. (опубликована в 2018 г.). Этот стандарт такой же, как C11, за исключением исправлений дефектов (все из которых также применяются с -std = c11) и нового значения STDC_VERSION, и поэтому поддерживается в той же степени, что и C11. ' - person AJM-Reinstate-Monica; 17.01.2019
comment
Официальные ссылки описаны как лучшие по цене - я нашел C ++ 20 в том же интернет-магазине ANSI, который был признан лучшим местом для других стандартов (webstore.ansi.org/Standards/ISO/ISOIEC148822020). Это было дороже (250 долларов), чем ссылка на магазин ISO, если вы не являетесь членом ANSI. Я не знаю, сколько стоит членство в ANSI, поэтому оставьте ссылку iso.org нетронутой. - person AJM-Reinstate-Monica; 03.11.2020
comment
Иногда я сталкиваюсь с ситуациями, когда пытаюсь найти конкретную функцию в стандарте и обнаруживаю, что она действительно является частью POSIX. Интересно, следует ли нам включать стандартные версии POSIX в этот ответ вики - у кого-нибудь есть возражения против моего редактирования некоторых? Или вы думаете, что это не по теме? - person AJM-Reinstate-Monica; 04.12.2020
comment
Например, www.open-std.org/jtc1/sc22/open/n4217.pdf почти наверняка является черновиком POSIX.1-2008, mirror.math.princeton.edu/pub/oldlinux/download/c952.pdf - это POSIX.1-2001, есть версия POSIX в формате HTML. .1-2017 размещены на pubs.opengroup.org/onlinepubs/9699919799 - и это только те, о которых я знаю. - person AJM-Reinstate-Monica; 04.12.2020
comment
Извините, c952.pdf в приведенном выше комментарии является лишь частью POSIX.1-2001 - замените c952 на c950, c951 или c953 для доступа к каждой из других частей. - person AJM-Reinstate-Monica; 05.05.2021
comment
Кроме того, я добавил к ответу стандартные версии POSIX, поскольку никто не высказывал возражений против моих предложений в предыдущем комментарии. Это основано не только на попытке найти странную функцию и обнаружении, что она является частью POSIX, существуют также типы данных и заголовки, которые являются частью POSIX, плюс требование наличия компилятора командной строки, совместимого с C99 (который AFAICT был никогда не обновлялся для C11 или C17.) - person AJM-Reinstate-Monica; 07.05.2021
comment
Следуя вышеизложенному, существует страница Wikipedia библиотеки C POSIX. Я не буду редактировать его в ответе, но дам ссылку здесь: en.wikipedia. org / wiki / C_POSIX_library - person AJM-Reinstate-Monica; 07.05.2021
comment
Возможно, вы захотите упомянуть, к какому стандарту ведут вас ссылки! Также добавлен стандарт C11: open-std.org/ jtc1 / sc22 / wg14 / www / docs / n1570.pdf - person AJM-Reinstate-Monica; 24.06.2021
comment
@Shahbaz: Я не знаком со всеми копиями стандарта C (поскольку я не пишу код C (только C ++)). Вы можете начать свой собственный ответ или отредактировать один из ответов ниже, который явно относится к языку C (см. Тот, который находится ниже). - person AJM-Reinstate-Monica; 24.06.2021
comment
+1 за ведение списка, который постоянно обновляется, чем даже ISO, работающий группа 21. - person AJM-Reinstate-Monica; 12.07.2021

Онлайн-версии стандарта можно найти:

Самой последней общедоступной версией стандарта является комбинированная C99 + TC1 + TC2 + TC3, WG14 N1256 от 2007-09-07. Это рабочий документ WG14, но он отражает сводный стандарт на момент публикации.

Кажется, это новый стандарт:
Эта версия требует аутентификации
21.03.2017: N4660 - проект стандарта C ++ 17.

Похоже, это старый стандарт C ++ 14:
Эта версия требует аутентификации
07.10.2014: N4140 git По сути, C ++ 14 с небольшими ошибками и исправленными опечатками
02.09.2014: N4141 git Стандартный C ++ 14
02.03.2014: N3937
02.03.2014: N3936 git

Следующие все черновые версии стандарта:
Все следующие бесплатно загружаются
13.10.2013: N3797 git
16.05.2013: N3691
15.05.2013: N3690
2012-11-02: N3485
2012-02- 28: N3376
16.01.2012: N3337 git По сути, C ++ 11 с небольшими ошибками и опечатками исправленный

Похоже, это старый стандарт C ++ 11:
Эта версия требует аутентификации
2011-04-05: N3291 C ++ 11 (или очень близко)

Это похоже на старый стандарт C ++ 03:
Все приведенные ниже версии требуют аутентификации
2004-11-05: N1733
16.07.2004: N1655 Неофициальный
07.02.2004: N1577 C ++ 03 (или очень близко)
13 сентября 2001 г .: N1316 Проект расширенного технического исправления
1997-00-00: N1117 Проект расширенного технического исправления

Следующие все черновые версии стандарта:
Все следующие бесплатно загружаются
1996-00-00: N0836 Проект расширенного технического исправления
1995-00- 00: N0785 Рабочий документ для проекта предлагаемого международного стандарта для информационных систем - Язык программирования C ++

2021 / 2020 / 2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011

Рабочий проект стандарта языка программирования C ++

Другие интересные статьи:

Черновики ссылок:

C99 доступен в Интернете. Цитируется с www.open-std.org :

person Community    schedule 11.01.2011
comment
+1 за список; только чтобы добавить, что все черновики доступны в виде репозитория git github.com/cplusplus/draft. Вы можете добавить ссылку на isocpp.org/std/the-standard - person Shahbaz; 14.06.2012
comment
@ShafikYaghmour: Похоже, они заблокировали его (что обычно означает, что это официальный релиз). Я обновил ссылки на версию, которая требует аутентификации (т.е. вы за нее заплатили). - person Martin York; 14.06.2012
comment
Требуется имя пользователя и пароль для получения черновика c ++ 14 pdf - person Lundin; 25.10.2013
comment
@ BЈовић: Они проголосовали за него вчера, так что это уже не проект. Как только они обновят основной сайт ISO, я соответствующим образом обновлю эту страницу. N3797 очень близок и бесплатен. N3936 доступен на github по этой ссылке. - person pepr; 15.11.2013
comment
Похоже, _1_ - это последний рабочий проект, доступный на github. Я взял его из списка до Урбаны. - person Martin York; 07.03.2014
comment
Почему два. Кажется, новый стандарт: заголовки? Один для C ++ 11, а другой для C ++ 14? Это сбивает с толку. - person BЈовић; 20.08.2014
comment
@CiroSantilli 六四 事件 法轮功 纳米比亚 胡海峰: На самом деле существует три C ++ 03 C ++ 11 C ++ 14. В разработке находится новая версия, предварительно названная C ++ 17. Примечание: ни один из них не нарушает обратную совместимость с предыдущей версией, но каждая итерация добавляет новые функции и библиотеки. Вам следует изучить C ++ 14, это последняя официальная версия языка. - person Martin York; 20.08.2014
comment
@LokiAstari благодарит за ответ. Думаю, я уже знал это :-) Но я думаю, что формат этого сообщения немного сбивает с толку. Вместо этого кажется новым стандартом, можем ли мы поместить заголовки, говорящие: C ++ 11 и черновики, C ++ 14 и черновики и т. Д. - person Shafik Yaghmour; 18.10.2014
comment
Здравствуйте, прошу прощения за этот комментарий, но мне нужен _1_, и я не могу его найти. этот pdf нигде недоступен - person Ciro Santilli 新疆再教育营六四事件ۍ 16.06.2015
comment
@ k-five: Кажется, Sombody опубликовал версию на github: github .com / cplusplus / draft / blob / master / paper / n4140.pdf - person Martin York; 16.06.2015
comment
Эти ссылки: Похоже, это новый стандарт: для этой версии требуется проверка подлинности 2014-10-07: N4140 git По сути, C ++ 14 с небольшими ошибками и исправленными опечатками 2014-09-02: N4141 git Standard C ++ 14 2014-03-02: N3937 2014-03-02: N3936 git больше не доступны. - person Ciro Santilli 新疆再教育营六四事件ۍ 16.06.2015
comment
@LokiAstari Было бы полезно разместить ссылку на HTML-версии рабочих черновиков, такие как timsong-cpp.github .io / cppwp (не знаю, какой черновик, кажется, недавний) или n3337? - person Shakiba Moshiri; 16.05.2016
comment
@JustinTime My / cppwp - это транк, как и eel.is/c++draft. / cppwp / n3337 и / cppwp / n4140, по сути, соответствуют объявлению, с некоторыми дополнительными редакционными изменениями, которые необходимы для работы инструмента. (Ссылка на черновик источников LaTeX в верхней части оглавления приведет вас к точной фиксации, из которой был сгенерирован HTML.) - person Martin York; 16.05.2016
comment
@ T.C. Это полезно знать. - person 2501; 15.08.2016
comment
Вероятно, следует отметить, что N4659 является наиболее близким к C ++ 17 DIS, и эта ссылка также включает ссылку на C ++ 17 DIS, которая, вероятно, должна быть добавлена, хотя она не является общедоступной. - person Justin Time - Reinstate Monica; 04.12.2016
comment
@ShafikYaghmour Готово - person T.C.; 08.12.2016
comment
Я попытался отредактировать это, чтобы включить ссылку на новейший рабочий проект C ++ 23 (N4885 от 17 марта 2021 г.), но я продолжаю получать Ваше сообщение, похоже, содержит код, который неправильно отформатирован как код. Может ли кто-нибудь его отредактировать? Я не мог понять, как решить эту проблему. - person Justin Time - Reinstate Monica; 09.12.2016
comment
@ AJM-Reinstate-Monica исправлено - person Shafik Yaghmour; 07.12.2017
comment
@MartinYork Спасибо! Есть идеи, почему постоянно появлялось это сообщение об ошибке? - person Martin York; 07.12.2017
comment
@ AJM-Reinstate-Monica Понятия не имею. - person AJM-Reinstate-Monica; 05.05.2021
comment
Ссылка N1169 ведет к четырехстраничному документу, содержащему несколько отчетов о дефектах. Это ни в коем случае не черновик стандарта C ++ (или любого другого). - person Martin York; 06.05.2021
comment
Мне нравится этот ответ, потому что он дает понять, какой черновик является самым последним для каждого основного выпуска. - person AJM-Reinstate-Monica; 06.05.2021
comment
FCD - это уже доступно. - person Martin York; 06.05.2021

C ++ 11 (+ редакционные исправления): N3337 HTML, PDF

C ++ 14 (+ редакционные исправления): N4140 HTML, PDF

person Community    schedule 17.09.2008

C11 N1570 (текст)

C99 N1256

Проекты стандарта рассылаются для комментариев до ратификации и публикации.

Обратите внимание, что рабочий проект не является действующим стандартом, и это не совсем опубликованный стандарт.

Вы можете найти проект международного стандарта для C ++ 0x полезно.

Стандарты ISO стоят денег, от умеренной суммы (для версии PDF) до немного дороже (для версии книги).

Однако, хотя они еще не завершены, их обычно можно найти в Интернете в виде черновиков. В большинстве случаев финальная версия существенно не отличается от последней черновой версии, поэтому, хотя она и не идеальна, она вполне подойдет.

person Community    schedule 05.05.2012
comment
Замечание о версии для печати стандарта C от Wiley: это стандарт C99, а не C89 / 90. - person Gareth McCaughan; 13.11.2012
comment
Неужели это последний черновик? Одно различие, о котором я знаю, заключается в том, что этот черновик определяет диапазон tm_sec как _1_, а C90 (неправильно) _2_ - person Ciro Santilli 新疆再教育营六四事件ۍ 14.11.2018

Черновик C ++ 0x

person Community    schedule 17.09.2008
comment
@Cubbi, поскольку я не могу лично доказать, что это так, я изменил формулировку. Спасибо. - person ; 14.04.2010

Стандарты C99 и C ++ 03 доступны в виде книги от Wiley:

Плюс, как уже упоминалось, рабочий проект будущих стандартов часто доступен на сайтах комитетов:

  • Черновик C-201x доступен как N1336, а черновик C ++ 0x как N3225.
person Community    schedule 17.09.2008

Стандарт C ++ на Amazon

  • Веб-сайт комитета C
  • Текст проекта стандарта ANSI C (он же C.89) доступен в Интернете. Он был стандартизирован комитетом ANSI до принятия стандартом ISO C (C.90), поэтому нумерация разделов различается (разделы 2–4 ANSI примерно соответствуют разделам 5–7 ISO), хотя содержание (предполагается быть) в значительной степени идентичны.

Стандарт C на Amazon

  • Стандарты ISO C и C ++ чертовски дороги. С другой стороны, INCITS переиздает их гораздо дешевле. Похоже, что у http://www.techstreet.com/ есть PDF-файл за 30 долларов (поиск по INCITS / ISO / МЭК 14882: 2003).
  • Доступны и печатные версии. Ищите версии Британского института стандартов, опубликованные Wiley.

веб-сайт комитета C ++

person Community    schedule 17.09.2008
comment
@Cubbi: он сказал, что это последний проект стандарта ANSI. Похоже, кто-то из рабочей группы ISO запутался и подумал, что возможные две дополнительные секунды в году могут произойти в / после той же минуты ... Или они получили ошибку от POSIX, который не Сказать, откуда взяли, только то, что исправили, чтобы согласовать с C99. - person Michael Burr; 27.09.2008

Фактические документы стандартов могут быть не самыми полезными. Большинство компиляторов не полностью реализуют стандарты и иногда могут конфликтовать. Так что документация по компилятору, которая у вас уже есть, будет более полезной. Кроме того, в документации будут содержаться примечания, относящиеся к конкретной платформе, и примечания по любым оговоркам.

person Community    schedule 16.08.2013
comment
K&R 2-е изд. (ANSI C), который не основан на фактическом окончательном стандарте, действительно указывает, что [0, 60] равно [0, 61]. Я думал, что это было для дополнительных секунд, имеет смысл. - person Cubbi; 17.08.2013
comment
@veganaiZe Диапазон составляет [0, 60], чтобы разрешить дополнительные секунды (в противном случае это было бы [0, 59]). [0, 61] было ошибкой, подразумевая, что можно было бы иметь две дополнительные секунды в одной и той же минуте (это не так). - person jxh; 17.08.2013
comment
Есть по крайней мере одно заметное различие между C89 и C90. В разделе 6.5.7 (ранее 3.5.7) список становится заключенным в фигурные скобки списком в C90. - person SamB; 25.03.2015
comment
В настоящее время techstreet.com предлагает стандарт C ++ 2003 в формате PDF за 30 долларов США и стандарт C ++ 2011 за 403 доллара США. - person veganaiZe; 20.06.2018
comment
Большое спасибо за ссылку на Techstreet. Интернет-магазин ANSI.org не стал бы продавать мне стандарт C11 (отказ от кредитной карты по соображениям безопасности, то есть без уважительной причины), в то время как покупка по аналогичной цене (с той же картой) на Techstreet прошла гладко и без сбоев. - person Keith Thompson; 08.11.2018
comment
Документация компилятора важна, но знание языка, а не знание вашей реализации - это гораздо больше. - person AJM-Reinstate-Monica; 07.05.2021

Хотя это и не настоящий стандарт, есть поправка к ISO C (C89 / 90) под названием C94 / 95, или Нормативное дополнение 1. Он был интегрирован в C99, хотя некоторые компиляторы, такие как Clang позволяет указать _1_ в командной строке. ISO / IEC 9899: 1990 / Amd 1: 1995 можно приобрести по высокой цене на сайте SAI GLOBAL (PDF или бумажная копия).

Краткое содержание документа можно найти здесь.

person Community    schedule 17.09.2008
comment
С действующим стандартом вы можете находить ошибки в компиляторах и помогать им лучше следовать стандарту, исправляя их, отправляя отчеты об ошибках или просто заходя в IRC-комнату и разговаривая с кем-то, кто может это исправить. - person Keith Thompson; 10.12.2011
comment
@hdante - абсолютно. Если в качестве идеала у вас есть стандарт, вы можете потребовать от производителя совместимости. @ / all - намерение здесь не состояло в том, чтобы сказать, что стандарт бесполезен (к вашему сведению, переход от стандарта в первую очередь - это подход, который я использовал в прошлом), но что вы также должны знать свою отправную точку в реальном мире, что, надеюсь, соответствует стандартам. - person Arto Bendiken; 22.05.2013

Когда (тогдашний проект) стандарта ANSI C рассматривался для принятия международного стандарта в 1990 году, было несколько возражений, потому что он не решал вопросы интернационализации. Поскольку стандарт готовился уже несколько лет, было решено внести несколько изменений, чтобы обеспечить основу (например, были добавлены функции из подпункта 7.10.7), и работа будет проводиться отдельно для обеспечения надлежащая интернационализация Стандарта. Кульминацией этой работы стало Нормативное Дополнение 1.

person Community    schedule 17.09.2008
comment
В любом случае документация компилятора не учитывает то, что предусмотрено стандартами. - person Spidey; 04.07.2012
comment
Ссылка SAI Global больше не действительна. Я проверил archive.org, и однажды он действительно перенаправлял - на основании этого Я ДУМАЮ infostore.saiglobal.com/en-gb/standards/ - это новый URL для покупки NA1. - person hdante; 01.03.2013
comment
Следующие черновые версии стандарта:
Все перечисленные ниже доступны для бесплатной загрузки
(многие из них можно найти по адресу основная ссылка GitHub)
17 марта 2021 г .: N4885
2020-12-15: N4878
2020- 10–18: N4868 < br /> 2020-04-08: N4861
14 января 2020 г .: N4849
27.11.2019: N4842
08.10.2019: N4835 git
15.08.2019: N4830 git
17.06.2019: N4820 git
15 марта 2019 г .: N4810 g it
21.01.2019: N4800 git < br /> 26 ноября 2018 г .: N4791 git
2018-10 -08: N4778 git
07.07.2018: N4762 git
07.05.2018: N4750 git
02.04.2018: N4741 git
12.02.2018: N4727 git
27 ноября 2017 г .: N4713 git
16.10.2017: N4700 git
30.07.2017: N4687 git - person Kris Kumler; 01.03.2013
comment
Следующие черновые версии стандарта:
Все следующие бесплатно загружаются
21 марта 2017 г .: N4659 git
06.02.2017: N4640 git
28.11.2016: N4618 git
12.07.2016: N4606 git
30.05.2016: N4594 git
19.03.2016: N4582 git
09.11.2015: N4567 git
22 мая 2015 г .: N4527 git
10 апреля 2015 г .: N4431 git
19 ноября 2014 г .: N4296 git - person SamB; 25.03.2015

Нормативное приложение 1 воплощает реакцию C как на ограничения, так и на обещания международных наборов символов. Орграфы и заголовок были предназначены для улучшения внешнего вида программ на C, написанных в национальных вариантах ISO 646, например, без символов {или}. На другом конце спектра средства, подключенные к едва адекватной основе старого Стандарта, расширяют его до полного и согласованного набора утилит для обработки широких символов и многобайтовых строк.

  • Проблема с книгой Шильдта в том, что его комментарии сильно обесценивают стандарт, который он комментирует.

В этом документе кратко излагается нормативное приложение 1. Оно предназначено для быстрого информирования читателей, которые уже знакомы со стандартом; он не представляет и не может представить сложный предмет, лежащий в основе NA1, а также не может заменить исходный документ в качестве справочного руководства. (Тем не менее, он старается быть максимально точным, и его автор хотел бы услышать о любых ошибках или упущениях.)

http://clc-wiki.net/wiki/The_C_Standard

http://www.lysator.liu.se/c/na1.html

Обратите внимание на обсуждение MSO. Ответы на этот вопрос очень ценны для программистов на C и C ++; его следует оставить открытым (не в последнюю очередь потому, что есть стандарт C ++ 2014, который нужно добавить к ответам, после того как он был опубликован - он уже утвержден).

person Community    schedule 08.12.2014
comment
Следующие все черновые версии стандарта:
Все следующие бесплатно загружаются
28.02.2011: N3242 (отличия от N3291 очень незначительные)
2010 -11-27: N3225
21.08.2010: N3126
29 марта 2010 г .: N3090
16 февраля 2010 г .: N3035
09.11.2009: N3000
25 сентября 2009 г .: N2960
2009-06-22: N2914
23.03.2009: N2857
04.10.2008: N2798
25 августа 2008 г. : N2723
2008-06-27: N2691
19 мая 2008 г .: N2606
17 марта 2008 г .: N2588
04.02.2008: N2521
2007- 10–22: N2461 < br /> 2007-08-06: N2369
25 июня 2007 г .: N2315
07 мая 2007 г .: N2284
03.11.2006: N2134
21 апреля 2006 г .: N2009
2005-10-19: N1905
27 апреля 2005 г .: N1804 - person AJM-Reinstate-Monica; 12.04.2021