Where do I find the current C or C++ standard documents?
对于许多问题,答案似乎可以在"标准"中找到。 但是,我们在哪里找到它? 最好是在线。
谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没。
要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:
- C89
- C99
- C11
- C ++98
- C ++03
- C ++ 11
- C ++14
可以找到该标准的在线版本:
编程语言C ++标准工作草案
以下标准的所有草案版本:
以下所有内容均可免费下载
2019-08-15:N4830 git
2019-06-17:N4820 git
2019-03-15:N4810 git
2019-01-21:N4800 git
2018-11-26:N4791 git
2018-10-08:N4778 git
2018-07-07:N4762 git
2018-05-07:N4750 git
2018-04-02:N4741 git
2018-02-12:N4727 git
2017-11-27:N4713 git
2017-10-16:N4700 git
2017-07-30:N4687 git
这似乎是新标准:
这些版本需要身份验证
2017-03-21:N4660是C ++ 17草案标准
以下标准的所有草案版本:
以下所有内容均可免费下载
2017-03-21:N4659 git
2017-02-06:N4640 git
2016-11-28:N4618 git
2016-07-12:N4606 git
2016-05-30:N4594 git
2016-03-19:N4582 git
2015-11-09:N4567 git
2015-05-22:N4527 git
2015-04-10:N4431 git
2014-11-19:N4296 git
这似乎是旧的C ++ 14标准:
这些版本需要身份验证
2014-10-07:N4140 git基本上是C ++ 14,带有轻微错误和拼写错误
2014-09-02:N4141 git标准C ++ 14
2014-03-02:N3937
2014-03-02:N3936 git
以下标准的所有草案版本:
以下所有内容均可免费下载
2013-10-13:N3797 git
2013-05-16:N3691
2013-05-15:N3690
2012-11-02:N3485
2012-02-28:N3376
2012-01-16:N3337 git本质上是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
PDF版本的标准
截至2014年9月1日,PDF格式的C和C ++标准文档的最佳价格位置为:
C ++ 98 ISO / IEC 14882:1998:新西兰标准公司90美元(约合60美元)
C17 / C18 ISO / IEC 9899:2018:从2017年11月起ansi.org / N2176 / c17_updated_proposed_fdis.pdf草案收到232美元(Link broken,见Wayback Machine N2176)
在新版标准发布后不久,您不能直接从标准机构获得标准(任何标准)的旧版本。因此,从标准组织购买C89,C90,C99,C ++ 98,C ++ 03的标准很难找到。如果您需要标准的旧版本,请将Techstreet作为一个可能的来源。例如,它仍然可以提供PDF格式的加拿大版CAN / CSA-ISO / IEC 9899:1990标准,但需要付费。
非PDF电子版标准
打印版本的标准
标准的打印副本可从国家标准机构和ISO获得,但非常昂贵。
如果你想要比上面的钱少得多的C90标准的硬拷贝,你可以找到一个廉价的使用副本的Herb Schildt的书亚马逊的Annotated ANSI标准,其中包含标准的实际文本(有用)和评论关于标准(不太有用)。
C99和C ++ 03标准以Wiley和BSI(英国标准协会)的书籍形式提供:
标准委员会草案版本
未来标准的工作草案通常可从委员会网站获得:
请注意,这些文档与标准不同,尽管决定标准的会议之前的版本通常非常接近最终标准。 FCD(最终委员会草案)版本受密码保护;你需要成为标准委员会才能获得它们。
但是,在我看来,尽管草案版本可能非常接近最终批准的标准版本,但您应该真正获得实际文档的副本 - 特别是如果您计划引用它们作为参考。当然,饥饿的学生应该继续使用草稿,如果现金紧张。
看来,如果您愿意并且能够在批准标准后等待几个月,那么在寻找标准时搜索"INCITS / ISO / IEC"而不是"ISO / IEC"是关键。这样我就能以合理的价格找到C ++ 11标准,现在是C11标准。因此,作为一个例子,您在webstore.ansi.org上搜索"INCITS / ISO / IEC 9899:2011"而不是"ISO / IEC 9899:2011",您会发现价格合理的PDF版本。
网站https://wg21.link/提供了指向C ++当前工作草案和标准草案以及委员会文件的简短URL链接:
该标准的当前草案在Github上作为LaTeX来源维护。可以使用cxxdraft-htmlgen将这些源转换为HTML。以下站点维护生成的HTML页面:
Tim Song还维护生成的网络TS和范围TS的HTML和PDF版本。
好。
C99可在线获取。引自www.open-std.org:
The lastest publically available version of the standard is the
combined C99 + TC1 + TC2 + TC3, WG14 N1256, dated 2007-09-07. This is
a WG14 working paper, but it reflects the consolidated standard at the
time of issue.
草稿链接:
C ++ 11(+编辑修正):N3337 HTML,PDF
C ++ 14(+编辑修正):N4140 HTML,PDF
C11 N1570(正文)
C99 N1256
Drafts of the Standard are circulated for comment prior to ratification and publication.
Note that a working draft is not the standard currently in force, and it is not exactly the published standard
您可能会发现C ++ 0x的国际标准草案很有用。
ISO标准从中等数量(对于PDF版本)到更多(对于书籍版本)花费金钱。
虽然它们尚未最终确定,但它们通常可以作为草稿在线发现。大部分时间最终版本与最后一个版本没有显着差异,所以虽然不完美,但它们也适合。
- C ++ 0x草案
Wiley提供书籍形式的C99和C ++ 03标准:
- 亚马逊上的C ++标准版
- 亚马逊的C标准
此外,如前所述,未来标准的工作草案通常可从委员会网站获取:
- C ++委员会网站
- C委员会网站
C-201x草案以N1336格式提供,C ++ 0x草案以N3225格式提供。
ANSI C标准(又名C.89)草案的文本可在线获取。这是由ANSI委员会在ISO C标准(C.90)接受之前标准化的,因此各部分的编号不同(ANSI部分2到4大致对应于ISO部分5到7),尽管内容是(假设的)是)大致相同。
ISO C和C ++标准非常昂贵。另一方面,INCITS重新发布它们的次数要少得多。 http://www.techstreet.com/似乎有30美元的PDF
(搜索INCITS / ISO / IEC 14882:2003)。
硬拷贝版本也可用。寻找由Wiley出版的英国标准协会版本。
实际标准文件可能不是最有用的。大多数编译器没有完全实现标准,有时可能会发生冲突。因此,您已经拥有的编译器文档将更有用。此外,文档将包含特定于平台的备注和有关任何警告的说明。
虽然不是实际标准,但对ISO C(C89 / 90)进行了修订,称为C94 / 95或规范性附录1.它已集成到C99中,尽管某些编译器(如Clang)允许您在命令上指定
- http://clc-wiki.net/wiki/The_C_Standard
可以在此处找到该文档的摘要。
When the (then draft) ANSI C Standard was being considered for
adoption of an International Standard in 1990, there were several
objections because it didn't address internationalization issues.
Because the Standard had already been several years in the making, it
was agreed that a few changes would be made to provide the basis (for
example, the functions in subclause 7.10.7 were added), and work would
be carried out separately to provide proper internationalization of
the Standard. This work has culminated in Normative Addendum 1.Normative Addendum 1 embodies C's reaction to both the limitations and
promises of international character sets. Digraphs and the
header were meant to improve the appearance of C programs written in
national variants of ISO 646 without, e.g., { or } characters. On the
other end of the spectrum, the facilities connected to and
extend the old Standard's barely adequate basis into a
complete and consistent set of utilities for handling wide characters
and multibyte strings.This document summarizes Normative Addendum 1. It is intended to
quickly inform readers who are already familiar with the Standard; it
does not, and cannot, introduce the complex subject matter behind NA1,
nor can it replace the original document as a reference manual.
(Nevertheless, it tries to be as accurate as possible, and its author
would like to hear about any errors or omissions.)
- http://www.lysator.liu.se/c/na1.html
http://c0x.coding-guidelines.com/包含一个可搜索的,基于HTML的C标准版本。实际上,略有修改版本:
This web site contains a modified version of N1256. It includes
wording that has been deleted from C99 (i.e., in struck through form)
and wording that does used to appear in C99 (i.e., in underlined
form).