对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.
谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.
要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:
C89
C99
C11
C++ 98
C++ 03
C++ 11
C++ 14
Martin York.. 417
可以找到该标准的在线版本:
以下标准的所有草案版本:以下所有版本
均可免费下载 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年3月21日: N4659 的git
2017年2月6日: N4640 的git
2016年11月28日: N4618 的git
2016年7月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++
2018年 / 2017年 / 到2016年 / 到2015年 / 2014年 / 2013年 / 2012年 / 2011年
可以找到该标准的在线版本:
以下标准的所有草案版本:以下所有版本
均可免费下载 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年3月21日: N4659 的git
2017年2月6日: N4640 的git
2016年11月28日: N4618 的git
2016年7月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++
2018年 / 2017年 / 到2016年 / 到2015年 / 2014年 / 2013年 / 2012年 / 2011年
截至2014年9月1日,PDF格式的C和C++标准文档的最佳价格位置为:
C++ 17 - ISO/IEC 14882:2017:来自ansi.org的116美元
C++ 14 - ISO/IEC 14882:2014:新西兰标准公司90美元(约合60美元)
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美元)
C17/C18 - ISO/IEC 9899:2018:从2017年11月起ansi.org/N2176/c17_updated_proposed_fdis.pdf草案收到232美元(Link broken,见Wayback Machine N2176)
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获得硬拷贝($ 88 +运费)
在新版标准发布后不久,您不能直接从标准机构获得标准(任何标准)的旧版本.因此,从标准组织购买C89,C90,C99,C++ 98,C++ 03的标准很难找到.如果您需要标准的旧版本,请将Techstreet作为一个可能的来源.例如,它仍然可以提供PDF格式的加拿大版CAN/CSA-ISO/IEC 9899:1990标准,但需要付费.
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)
标准的打印副本可从国家标准机构和ISO获得,但非常昂贵.
如果你想比上面的钱要少得多的C90标准的硬拷贝,你可以找到便宜的使用复制草本Schildt的书附注的ANSI标准在亚马逊,它包含了标准的实际文本(有用)和标准的评论(不太有用).
C99和C++ 03标准以Wiley和BSI(英国标准协会)的书籍形式提供:
亚马逊上的C++ 03标准版
亚马逊上的C99标准
未来标准的工作草案通常可从委员会网站获得:
C++委员会网站
C委员会网站
请注意,这些文档与标准不同,尽管决定标准的会议之前的版本通常非常接近最终标准.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链接:
https://wg21.link/std11 - C++ 11
https://wg21.link/std14 - C++ 14
https://wg21.link/std17 - C++ 17
https://wg21.link/std - 当前的工作草案
C99 可在线获取.引自www.open-std.org:
最新公布的标准版本是C99 + TC1 + TC2 + TC3,WG14 N1256,日期为2007-09-07.这是WG14工作文件,但它反映了发布时的综合标准.
草稿链接:
C++ 11(+编辑修正):N3337 HTML,PDF
C++ 14(+编辑修正):N4140 HTML,PDF
C11 N1570(正文)
C99 N1256
标准草案在批准和公布之前分发以征求意见.
请注意,工作草案不是当前有效的标准,并不完全是已发布的标准
您可能会发现C++ 0x的国际标准草案很有用.
ISO标准需要花费金钱,从适量(对于PDF版本)到更多(对于书籍版本).
虽然它们尚未最终确定,但它们通常可以作为草稿在线发现.大部分时间最终版本与最后一个版本没有显着差异,所以虽然不完美,但它们也适合.
C++ 0x草案
Wiley提供书籍形式的C99和C++ 03标准:
亚马逊上的C++标准版
亚马逊的C标准
此外,如前所述,未来标准的工作草案通常可从委员会网站获取:
C++委员会网站
C委员会网站
C- 201x草案以N1336格式提供,C++ 0x草案以N3225格式提供.