对于许多问题,答案似乎可以在《标准》中找到.然而,我们在哪里可以找到呢?最好是在线.

谷歌搜索有时会感到徒劳,尤其是对于C标准,因为它们淹没在编程论坛上的讨论洪流中.

开始之前,既然这些都是我现在正在搜索的,那么在哪里有好的在线资源可以找到:

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

推荐答案

标准的PDF版本

至于<罢工> 2014年9月1日 2021年9月,PDF中官方C和C++标准文件的最佳价格位置似乎是:

标准的非PDFElectron 版

100

(The site hosting the plain text version of the C++11 working draft also has some C++14 drafts in this format. But none of them are copies of the final working draft, N4140.)

标准的打印版本

国家标准机构和ISO家公司提供标准的印刷版,但价格非常昂贵.

If you want a hardcopy of the C90 standard for much less money than above, you may be able to find a cheap used copy of Herb Schildt's book The Annotated ANSI Standard at Amazon, which contains the actual text of the standard (useful) and commentary on the standard (less useful - it contains several dangerous and misleading errors).

C99和C++03标准可从威利和BSI(英国标准协会)以图书形式获得:

标准委员会草案(免费)

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

如果您想获得当前或早期C/C++标准的草稿,可以在internet上免费获得:

对于C:

对于C++:

请注意,这些文件与标准不同,尽管在决定标准的会议之前的版本通常与最终标准非常接近.FCD(最终委员会草案)版本受密码保护;你需要加入标准委员会才能得到它们.

尽管草案版本可能与标准的最终批准版本非常接近,但本文的一些编辑强烈建议您获取一份实际文件的副本,尤其是如果您计划引用这些文件作为参考.当然,饥肠辘辘的学生如果手头拮据,应该继续使用这些汇票.


如果您愿意并且能够在标准批准后等待几个月,那么在寻找标准时搜索"INCITS/ISO/IEC"而不是"ISO/IEC"似乎是关键.通过这样做,本文的一位编辑能够以合理的价格找到C11和C++11标准.例如,如果您在webstore.ansi.org上搜索"INCITS/ISO/IEC 9899:2011"而不是"ISO/IEC 9899:2011",您将找到价格合理的PDF版本.


网站https://wg21.link/提供了简短的URL链接到C++当前工作草案和草案标准,以及委员会文件:


本标准的现行草案保留为Github%的latex 源.这些源代码可以使用cxxdraft-htmlgen转换为HTML.以下网站维护这样生成的HTML页面:

Tim Song还维护生成的HTML和PDF版本的网络TS和范围TS.

C标准的POSIX扩展

POSIX标准(IEEE POSIX3.1)要求兼容的操作系统包含C编译器.该编译器反过来必须符合C标准,还必须支持POSIX"系统接口"部分中定义的各种扩展(例如off_t数据类型、<aio.h>头、clock_gettime()函数和_POSIX_C_SOURCE宏)

因此,如果你试图查找一个特定的函数,你会被告知"这个函数是POSIX的一部分,而不是C标准",并想知道为什么操作系统标准要求编译器功能和语言扩展...现在你知道了!

C++相关问答推荐

在C中,entry = fgets(entry,sizeof(entry),*pt)是否是错误?

如何避免使用相对路径包含在c中

使用SWI—Prolog的qsave_program生成二进制文件有什么好处?'

DPDK-DumpCap不捕获端口上的传入数据包

使用额外的公共参数自定义printf

如何将字符串argv[]赋给C中的整型数组?

当我运行/调试C程序时,Malloc()似乎正在将&q;r\r...&q;赋值给一个指针,我不确定为什么?

在C语言中,在数学运算过程中,为什么浮点数在变量中的行为不同

以下声明和定义之间的区别

文件权限为0666,但即使以超级用户身份也无法打开

在移动数组元素时获得意外输出

#定义SSL_CONNECTION_NO_CONST

将字符串数组传递给C中的函数:`str[dim1][str_size]`vs`*str[dim1]`

如何使用FSeek和文件流指针在C中查找文件的前一个元素和前一个减go 一个元素

在吉陀罗中,_2_1_和CONCAT11是什么意思?

Linux/C:带有子进程的进程在添加waitid后都挂起

C中的数组下标和指针算法给出了不同的结果

C循环条件内的函数

在 C 中传递参数时出现整数溢出

比 * 更快的乘法