Где я могу найти текущие стандартные документы C или C ++?
Вопрос
На многие вопросы ответ, по-видимому, можно найти в "стандарте".Однако, где мы это находим?Желательно онлайн.
Поиск в Google иногда может показаться бесполезным, опять же, особенно в отношении стандартов C, поскольку они тонут в потоке обсуждений на форумах по программированию.
Чтобы начать с этого, поскольку это те, которые я ищу прямо сейчас, где есть хорошие онлайн-ресурсы для:
- С89
- С99
- С11
- C++98
- C++03
- C++11
- C++14
Решение
PDF-версии стандарта
По состоянию на 1 сентября 2014 года, лучшими местоположениями по цене для документов по стандартам C и C ++ в формате PDF являются:
- C++17 – ISO/IEC 14882:2017: $116 от ansi.org
- C++14 – ISO/IEC 14882:2014: 90 новозеландских долларов (около 60 долларов США) от Standards New Zealand
- C++11 – ISO/IEC 14882:2011:
$60 от ansi.org60 долларов от Techstreet - C++03 – ISO 14882:2003:
$30 от ansi.org48 долларов от SAI Global C++98 – ISO/IEC 14882:1998: 90 новозеландских долларов (около 60 долларов США) от Standards New Zealand
C17/C18 – ISO/IEC 9899:2018: $232 от ansi.org / N2176 / c17_updated_proposed_fdis.pdf черновик от ноября 2017 года (Ссылка не работает, смотрите Машина Обратного хода N2176)
- C11 – ISO/IEC 9899:2011:
$30$60 от ansi.org / WG14 черновой вариант N1570 - C99 – ISO 9899:1999:
$30$60 от ansi.org / WG14 черновой вариант N1256 - C90 – AS 3955-1991:
$141 от ansi.org$ 175 от Techstreet (австралийская версия C90, идентичная стандарту ISO 9899:1990) - C90 – 9899:1990 Печатная копия доступна в SAI Global (88 долларов США + доставка)
Обычно вы не можете получить старые редакции стандарта (любого стандарта) непосредственно от органов по стандартизации вскоре после выпуска новой редакции стандарта.Таким образом, стандарты для C89, C90, C99, C ++ 98, C ++ 03 будет трудно найти для покупки в органе по стандартизации.Если вам нужна старая редакция стандарта, проверьте Технострит как один из возможных источников.Например, он по-прежнему может предоставить канадскую версию стандарта CAN / CSA-ISO / IEC 9899: 1990 в формате PDF за отдельную плату.
Электронные версии стандарта, не в формате PDF
- C89 – Черновик версии в текстовом формате ANSI:(https://web.archive.org/web/20161223125339/http://flash-gordon.me.uk/ansi.c.txt)
- C90 TC1;ISO/IEC 9899 TCOR1, одностраничный HTML-документ:(http://www.open-std.org/jtc1/sc22/wg14/www/docs/tc1.htm)
- C90 TC2;ISO/IEC 9899 TCOR2, одностраничный HTML-документ:(http://www.open-std.org/jtc1/sc22/wg14/www/docs/tc2.htm)
Печатные версии стандарта
Печатные копии стандартов можно получить в национальных органах по стандартизации и ИСО но стоят очень дорого.
Если вам нужна печатная копия стандарта C90 за гораздо меньшие деньги, чем указано выше, возможно, вы сможете найти дешевую подержанную копию Херб Шилдткнига автора Аннотированный Стандарт ANSI в Амазонка, который содержит фактический текст стандарта (полезный) и комментарий к стандарту (менее полезный).
Стандарты C99 и C ++ 03 доступны в виде книги от Wiley и BSI (British Standards Institute).:
- Стандарт C ++ 03 на Amazon
- Стандарт C99 на Amazon
Проекты версий комитета по стандартам
С рабочим проектом будущих стандартов часто можно ознакомиться на веб-сайтах комитетов:
Обратите внимание, что эти документы не совпадают со стандартом, хотя версии непосредственно перед совещаниями, на которых принимается решение по стандарту, обычно очень близки к тому, что содержится в окончательном варианте стандарта.Версии FCD (Окончательного проекта комитета) защищены паролем;вы должны быть членом комитета по стандартам, чтобы получить их.
Однако, на мой взгляд, даже несмотря на то, что черновые версии могут быть очень близки к окончательным ратифицированным версиям стандартов, вам действительно следует получить копии реальных документов — особенно если вы планируете цитировать их в качестве ссылок.Конечно, голодающие студенты должны пойти дальше и воспользоваться чеком, если у них нет денег.
Похоже, что, если вы готовы и способны подождать несколько месяцев после ратификации стандарта, ключевым моментом при поиске стандарта является поиск "INCITS / ISO / IEC" вместо "ISO / IEC".Таким образом, я смог найти стандарт C ++ 11 по разумной цене, а теперь и стандарт C11.Итак, в качестве примера вы ищете "INCITS / ISO / IEC 9899: 2011" вместо "ISO / IEC 9899: 2011" на webstore.ansi.org и вы найдете PDF-версию по разумной цене.
Сайт https://wg21.link/ предоставляет краткие URL-ссылки на текущий рабочий проект C ++ и проекты стандартов, а также документы комитета:
- https://wg21.link/std11 - C++11
- https://wg21.link/std14 - C++14
- https://wg21.link/std17 - C++17
- https://wg21.link/std - текущий рабочий проект
Текущий проект стандарта поддерживается в виде источников LaTeX на Гитхаб.Эти исходные тексты могут быть преобразованы в HTML с помощью cxxdraft-htmlgen.Следующие сайты поддерживают созданные таким образом HTML-страницы:
- Тим Сонг - Текущий рабочий проект - C++11 - C++14 - C++17
- Eelis - Текущий рабочий проект
Тим Сонг также поддерживает сгенерированные HTML- и PDF-версии сетевых TS и диапазонов TS.
Другие советы
С онлайн-версиями стандарта можно ознакомиться:
Рабочий проект Стандарта для языка программирования C++
Ниже приведены все черновые версии стандарта:
Все нижеперечисленное можно скачать бесплатно
2019-03-15: N4810 мерзавец
2019-01-21: N4800 мерзавец
2018-11-26: N4791 мерзавец
2018-10-08: N4778 мерзавец
2018-07-07: N4762 мерзавец
2018-05-07: N4750 мерзавец
2018-04-02: N4741 мерзавец
2018-02-12: N4727 мерзавец
2017-11-27: N4713 мерзавец
2017-10-16: N4700 мерзавец
2017-07-30: N4687 мерзавец
Похоже, это новый стандарт:
Для этой версии требуется аутентификация
2017-03-21: N4660 является проектом стандарта C ++ 17
Ниже приведены все черновые версии стандарта:
Все нижеперечисленное можно скачать бесплатно
2017-03-21: N4659 мерзавец
2017-02-06: N4640 мерзавец
2016-11-28: N4618 мерзавец
2016-07-12: N4606 мерзавец
2016-05-30: N4594 мерзавец
2016-03-19: N4582 мерзавец
2015-11-09: N4567 мерзавец
2015-05-22: N4527 мерзавец
2015-04-10: N4431 мерзавец
2014-11-19: N4296 мерзавец
Похоже, это старый стандарт C ++ 14:
Для этой версии требуется аутентификация
2014-10-07: N4140 мерзавец По сути, C ++ 14 с исправленными незначительными ошибками и опечатками
2014-09-02: N4141 мерзавец Стандартный C ++14
2014-03-02: N3937
2014-03-02: N3936 мерзавец
Ниже приведены все черновые версии стандарта:
Все нижеперечисленное можно скачать бесплатно
2013-10-13: N3797 мерзавец
2013-05-16: N3691
2013-05-15: N3690
2012-11-02: N3485
2012-02-28: N3376
2012-01-16: N3337 мерзавец По сути, C ++ 11 с исправленными незначительными ошибками и опечатками
Похоже, это старый стандарт C ++ 11:
Эта версия требует проверки подлинности
2011-04-05: N3291 C ++ 11 (Или очень близко)
Ниже приведены все черновые версии стандарта:
Все нижеперечисленное можно скачать бесплатно
2011-02-28: N3242 (отличия от N3291 очень незначительны)
2010-11-27: N3225
2010-08-21: N3126
2010-03-29: N3090
2010-02-16: N3035
2009-11-09: N3000
2009-09-25: N2960
2009-06-22: N2914
2009-03-23: N2857
2008-10-04: N2798
2008-08-25: N2723
2008-06-27: N2691
2008-05-19: N2606
2008-03-17: N2588
2008-02-04: N2521
2007-10-22: N2461
2007-08-06: N2369
2007-06-25: N2315
2007-05-07: N2284
2006-11-03: N2134
2006-04-21: N2009
2005-10-19: N1905
2005-04-27: N1804
Похоже, это старый стандарт C ++ 03:
Все приведенные ниже версии требуют проверки подлинности
2004-11-05: N1733
2004-07-16: N1655 Неофициальный
2004-02-07: N1577 C ++ 03 (Или очень близко)
2001-09-13: N1316 Проект Расширенного Технического исправления
1997-00-00:N1117 Проект Расширенного Технического исправления
Ниже приведены все черновые версии стандарта:
Все нижеперечисленное можно скачать бесплатно
1996-00-00: N0836 Проект Расширенного Технического исправления
1995-00-00:N0785 Рабочий документ для проекта предлагаемого Международного стандарта для информационных систем - Язык программирования C ++
Другие Интересные статьи:
2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011
C99 - это доступно онлайн.Цитируется из www.open-std.org:
Последняя публично доступная версия Стандарт в сочетании с C99 + ТС1 + ТЗ2 + ТЗ3, WG14 N1256, датировано 2007-09-07.Это рабочий документ РГ14, но он отражает сводный стандарт на момент выпуска.
Черновик Ссылок:
C ++ 11 (+ редакторские исправления):N3337 HTML, PDF
C ++ 14 (+ редакторские исправления):N4140 HTML, PDF
С99 N1256
Сквозняки положения Стандарта распространяются для комментариев до ратификации и публикации.
Примечание что рабочий проект не является стандартом, действующим в настоящее время, и это не совсем опубликованный стандарт
Вы могли бы найти проект международного стандарта для C ++ 0x полезно.
Стандарты ISO стоят денег, от умеренной суммы (для PDF-версии) до немного большей (для книжной версии).
Однако, хотя они еще не доработаны, их обычно можно найти в Интернете в виде черновиков.В большинстве случаев окончательная версия существенно не отличается от последнего черновика, так что, хотя они и не идеальны, они вполне подойдут.
Стандарты ISO C и C ++ чертовски дороги.С другой стороны, The INCITS переиздает их за гораздо меньшую цену. http://www.techstreet.com/ кажется, есть PDF-файл за 30 долларов (поиск по INCITS / ISO / IEC 14882: 2003).
Также доступны печатные версии.Поищите версии British Standards Institute, опубликованные Wiley.
Текст документа, содержащего проект стандарта ANSI C (он же C.89) доступен в Интернете.Это было стандартизировано комитетом ANSI до принятия стандарта ISO C (C.90), поэтому нумерация разделов отличается (разделы ANSI 2-4 примерно соответствуют разделам ISO 5-7), хотя содержание (предполагается) в значительной степени идентичным.
Сами документы по стандартам могут оказаться не самыми полезными.Большинство компиляторов не полностью реализуют стандарты и иногда могут фактически конфликтовать.Таким образом, документация по компилятору, которая у вас уже есть, будет более полезной.Кроме того, документация будет содержать замечания, относящиеся к конкретной платформе, и примечания по любым оговоркам.
Хотя это и не фактический стандарт, существует поправка к ISO C (C89 / 90), называемая C94 /95, или Нормативное дополнение 1.Он был интегрирован в C99, хотя некоторые компиляторы, такие как Лязг позвольте вам указать -std=c94
в командной строке.ISO / IEC 9899: 1990 / Amd 1: 1995 можно приобрести по высокой цене в САИ ГЛОБАЛ (PDF или печатная копия).
Краткое изложение этого документа можно найти здесь здесь.
Когда (тогдашний проект) стандарта ANSI C рассматривался на предмет принятия Международного стандарта в 1990 году, было несколько возражений, поскольку в нем не рассматривались вопросы интернационализации.Потому что стандарт уже несколько лет, он было решено, что некоторые изменения будут сделаны, чтобы создать основу (для например, функции подпунктом 7.10.7 были добавлены), и работа будет осуществляться отдельно, чтобы обеспечить надлежащую интернационализации стандартная.Кульминацией этой работы стало Нормативное дополнение 1.
Реакция нормативных приложение 1 воплощает С К и ограничений и обещает международных наборов символов.Орграфы и заголовок были предназначены для улучшения внешнего вида программ на C, написанных на национальных вариантах ISO 646 без, например, символов { или }.На другом конце спектра находятся средства, подключенные к и расширяющие едва достаточную основу старого стандарта в полный и согласованный набор утилит для обработки больших символов и многобайтовых строк.
В настоящем документе кратко излагается Нормативное Добавление 1.Он предназначен для оперативно информировать читателей, которые уже знакомы со стандартом;он не представляет и не может представлять сложную тему, стоящую за NA1, и не может заменить оригинальный документ в качестве справочного руководства.(Тем не менее, он старается быть максимально точным, и его автор хотел бы услышать о любых ошибках или упущениях.)
http://c0x.coding-guidelines.com/ содержит версию стандарта C с возможностью поиска на основе HTML.На самом деле, это слегка измененная версия:
Этот веб-сайт содержит измененную версию N1256.Он включает формулировку, которая была удалена из C99 (т.Е. в зачеркнутой форме) и формулировку, которая раньше появлялась в C99 (т.е. в подчеркнутой форме).