对于许多问题,答案似乎在“标准”中找到。然而,我们在哪里找到它呢?最好是网上。

谷歌有时会让人觉得毫无意义,尤其是对于C标准,因为它们淹没在编程论坛上的讨论洪流中。

首先,因为这些是我现在正在搜索的,哪里有好的在线资源:

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


当前回答

ANSI C标准草案(又名C.89)的文本可在网上获得。这是在ISO C标准(C.90)接受之前由ANSI委员会标准化的,所以章节的编号不同(ANSI章节2到4大致对应ISO章节5到7),尽管内容(应该)基本上相同。

其他回答

虽然不是一个实际的标准,但ISO C (C89/90)有一个修正案,称为C94/95,或规范附录1。它被集成到C99中,尽管Clang等编译器允许您在命令行上指定-std=c94。ISO/IEC 9899:1990/Amd 1:1995可以从SAI GLOBAL以高价购买(PDF或硬拷贝)。

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

ISO标准需要花钱,从中等数额(PDF版本)到稍微多一点(纸质版本)。

虽然它们还没有最终定稿,但通常可以在网上找到草稿。大多数情况下,最终版本与上一版没有太大的不同,所以虽然不完美,但它们也很合适。

c++ 0x草案

ISO C和c++标准非常昂贵。另一方面,INCITS重新出版的费用要低得多。http://www.techstreet.com/网站上的PDF文档售价30美元 (搜寻INCITS/ISO/ iec14882:2003)。

也有硬拷贝版本。请查阅Wiley出版的英国标准协会版本。

草案链接:

c++ 11(+编辑修复):N3337 HTML, PDF

c++ 14(+编辑修复):N4140 HTML, PDF

c11n1570(文本)

C99 N1256

标准草案在批准和出版前分发征求意见。 请注意,工作草案不是当前生效的标准,也不是确切的已发布标准

该标准的在线版本可以在以下网站找到:

编程语言c++标准工作草案

以下是本标准的所有草案版本:

以下所有内容均可免费下载 2022-12-18: N4928 2022-09-05: N4917 2022-03-17: N4910 2021-10-22: N4901 2021-06-18: N4892 2021-03-17: N4885 2020-12-15: N4878 2020-10-18: N4868 2020-04-08: N4861

这是c++ 20标准: 此版本需要身份验证 2020-04-08: N4860

以下是本标准的所有草案版本: 以下所有内容均可免费下载 (其中许多可以在这个GitHub主链接上找到) 2020-01-14: N4849 2019-11-27: N4842 2019-10-08: N4835 git 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

这是旧的c++ 17标准: 此版本需要身份验证 2017-03-21: N4660

以下是本标准的所有草案版本: 以下所有内容均可免费下载 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 Standard 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

The following all draft versions of the standard: All the following are freely downloadable 2011-02-28: N3242 (differences from N3291 very minor) 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++

其他有趣的论文:

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