我在哪里可以find当前的C或C ++标准文档?

对于许多问题,答案似乎在“标准”中find。 但是,我们在哪里发现? 最好在线。

谷歌search有时候会觉得徒劳无功,尤其是对于C标准,因为在编程论坛的讨论洪水泛滥。

为了做到这一点,因为这些是我现在正在寻找的,那里有很好的在线资源:

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

标准的PDF版本

截至2014年9月1日,PDF格式的C和C ++标准文档的最佳价格为:

  • C ++ 14 – ISO / IEC 14882:2014: 从ansi.org获得$ 265 $ 133
  • C ++ 11 – ISO / IEC 14882:2011: 从ansi.org获得60 美元,从Techstreet获得60美元
  • C ++ 03 – ISO 14882:2003: 来自ansi.org的 $ 30,来自SAI Global的$ 48
  • C ++ 98 – ISO / IEC 14882:1998: 新西兰标准90美元(约合60美元)

  • C11 – ISO / IEC 9899:2011: 从ansi.org / WG14草案版本N1570获得 $ 30 $ 60

  • C99 – ISO 9899:1999: 从ansi.org / WG14草案版本N1256获得 $ 30 $ 60
  • C90 – AS 3955-1991:ansi.org 售价141美元,Techstreet售价175美元 (澳大利亚版C90,与ISO 9899:1990相同)
  • C90 – 9899:1990 硬拷贝可从SAI Global获得($ 115 +运费)

标准的新版本发布后不久,通常不能直接从标准机构获得标准(任何标准)的旧版本。 因此,C89,C90,C99,C ++ 98,C ++ 03的标准将很难从标准组织购买。 如果你需要一个标准的旧版本,请检查Techstreet作为一个可能的来源。 例如,它仍然可以提供PDF格式的加拿大版本CAN / CSA-ISO / IEC 9899:1990标准,收费。

打印版本的标准

这些标准的打印副本可以从国家标准机构和ISO获得,但是非常昂贵。

如果你想要一个C90标准的硬拷贝比上面less得多的钱,你可能会find一个便宜的旧版本的Herb Schildt的书在亚马逊 注释的ANSI标准 ,其中包含标准的实际文本(有用的)和评论标准(不太有用)。

C99和C ++ 03标准可从Wiley和BSI(英国标准协会)书面获得:

  • 亚马逊的C ++ 03标准
  • 亚马逊的C99标准

标准委员会草案版本

未来标准的工作草案通常可从委员会网站获得:

  • C ++委员会网站
  • C委员会网站

请注意,这些文件与标准不一样,尽pipe在决定标准的会议之前的版本通常非常接近最终标准。 FCD(最终委员会草案)版本受密码保护; 你需要在标准委员会得到他们。

但是,在我看来,尽pipe草稿版本可能非常接近最终批准版本的标准,但是您应该真正获得实际文档的副本 – 特别是如果您计划将其引用为引用。 当然,饥饿的学生应该继续前进,如果捆绑现金使用的草稿。


看来,如果你愿意并且能够在批准一个标准后等待几个月,寻找标准时寻找“INCITS / ISO / IEC”而不是“ISO / IEC”是关键。 这样我就能够以合理的价格findC ++ 11标准,现在又可以findC11标准。 因此,作为一个例子,您可以在webstore.ansi.org上search“INCITS / ISO / IEC 9899:2011”,而不是“ISO / IEC 9899:2011”,您将find价格合理的PDF版本。

在线版本的标准可以find:

工作草案,编程语言C ++标准

标准的以下所有草案版本
以下所有可免费下载
2017-03-21: N4659 混帐
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

这似乎是新的标准
这些版本需要authentication
2014年 10月7日: 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与小错误和错别字纠正

这似乎是新的标准
这个版本需要authentication
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

所有以下版本都需要authentication
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 ++

其他有趣的论文:

2017/2016/2015/2014/2013/2012/2011

C99 在线提供 。 引自www.open-std.org :

该标准的最新公开版本是2007年9月7日结合的C99 + TC1 + TC2 + TC3, WG14 N1256 。 这是一份WG14工作文件,但它反映了发布时的综合标准。

链接草案:

C ++ 11 N3337 (或N3242 )

C11 N1570 ( 正文 )

C99 N1256

本标准草案在批准和公布前已经发表评论。

请注意 ,工作草案不是目前生效的标准,并不完全是公布的标准

您可能会发现C ++ 0x 国际标准草案很有用。

国际标准化组织(ISO)的标准从中等金额(对于PDF版本)到更多(对于书本版本)都是要花钱的。

虽然他们还没有最后确定,他们通常可以在网上find,作为草案。 大多数情况下,最终版本与上一次的草稿没有太大的区别,所以虽然不是很完美,但是它们会很好。

  • C ++ 0x草案

C99和C ++ 03标准可从Wiley:

  • 亚马逊的C ++标准
  • C标准在亚马逊

此外,如前所述,未来标准的工作草案通常可从委员会网站获得:

  • C ++委员会网站
  • C委员会网站

C- 201x草案可用N1336 ,C ++ 0x草案可用N3225 。

ISO C和C ++标准是非常昂贵的。 另一方面,INCITS重新发布了很多。 http://www.techstreet.com/似乎有30美元的PDF(searchINCITS / ISO / IEC 14882:2003)。

硬拷贝版本也可用。 查找由Wiley出版的英国标准学会版本。

实际的标准文件可能不是最有用的。 大多数编译器没有完全实现这些标准,有时可能会发生冲突。 所以你已经拥有的编译器文档将会更有用。 此外,该文档将包含特定于平台的备注和注意事项。

ANSI C标准草案 (又名C.89)的文本可在线获取。 在ISO C标准(C.90)接受之前,ANSI标准委员会对标准进行了标准化,因此各部分的编号有所不同(ANSI第2部分至第4部分大致对应于ISO第5部分至第7部分),但内容是大致相同)。

虽然不是一个实际的标准,但ISO C(C89 / 90)的一个修正称为C94 / 95或规范性附录1.它已被整合到C99中,尽pipe一些编译器如Clang允许你指定-std=c94命令行。 ISO / IEC 9899:1990 / Amd 1:1995可以从SAI GLOBAL (PDF或纸质版)购买。

文档的摘要可以在这里find。

当1990年通过国际标准(当时的草案)ANSI C标准时,有几个反对意见,因为它没有解决国际化问题。 由于“标准”已经制定了几年,所以一致认为要作出一些修改以提供依据(例如,增加了第7.10.7条中的职能),并且将分别进行工作以提供标准的正确国际化。 这项工作在规范性附录1中达到了高潮。

规范性附录1体现了C对国际字符集的限制和承诺的反应。 Digraphs和头文件是为了改进用ISO 646的国家变体编写的C程序的外观,例如没有{或}字符。 另一方面,这些设施连接到老标准的基础上,并将其扩展到一个完整而一致的处理宽字符和多字节string的工具集。

本文件总结了规范性附录1,旨在快速通知已经熟悉本标准的读者。 它不能也不能把NA1背后的复杂题材介绍出来,也不能把原文作为参考手册。 (尽pipe如此,它尽可能准确,作者想听到任何错误或遗漏。)

http://c0x.coding-guidelines.com/包含C标准的可search的,基于HTML的版本。; 其实,稍微修改一下版本:

本网站包含N1256的修改版本。 它包括已经从C99中删除的措辞(即通过表格)和曾经出现在C99中的措辞(即以下划线的forms)。