问题 简要描述C和C ++标准的资源


在得到错误答案之后,因为我没有达到C标准的最新状态,所以我开始寻找一些可以描述C和C ++标准中最新的地方。

我不想要完整的标准,我找到了链接 我在哪里可以找到当前的C或C ++标准文档?,或亲密的技术讨论。相反,我想要简要描述标准的东西,如果我想更彻底地检查它,可能会参考实际标准,并且可能会说明引入了哪个标准。

有这样的资源吗?

编辑:问题的一个小背景:我已经编程C超过20年了,当我学到它时,标准化程度不高。官方标准中没有广泛实施的内容。多年来,我已经成为一名优秀的C程序员,当我们的朋友和学院遇到问题时,我会帮助我。

然而,当我学习C时,我被告知像多维数组的内存布局这样的东西是特定于实现的,当我看到关于该主题的问题时,我说它不是标准化的,只是被告知我错了。但即使知道这一点,我也很难找到任何地方说它符合标准,而且更难以找到它首先引入的标准。

如果有一些地方说“多维数组的内存布局在C9x中被标准化,在标准文档的Y部分中”很容易找到并将其提供给提出问题的人。我对实际的布局并不感兴趣,只是它已经标准化了,在哪里看看我是否真的想要一个明确的答案。

这当然适用于其他事情。就像知道头文件一样“<yyy.h>“标准”C90“强制要求,在标准中我应该寻找它的基本原理和内容。当它们展开时很难找到这些东西,将它收集在一个地方会使它变得容易找到。


8714
2017-11-11 06:51


起源

有趣的问题,但在我所有的时间阅读和学习书籍和在线的C ++,我从来没有碰到这样的事情,所以我咨询标准,如果我需要真正提供确切的证据。在这个网站和c ++新闻组(comp.lang.c ++及其主持的表兄弟)中有很多标准合规性讨论,但它是分布式的,而不是比如说 C++ Standard, Abridged and Annotated 就像你想要的那样。 - wkl
“我对实际布局并不感兴趣,只是它已经标准化了,如果我真的想要一个明确的答案,我会在哪里看看。”唯一的 明确 答案将在标准中找到;其他人都是其中的副本或简化。大多数简化对标准化的东西比对如何标准化感兴趣 使用 它。所以一般来说,你所寻找的东西根本就不存在,因为大多数人都不在乎。 - Nicol Bolas
@NicolBolas但你怎么知道在哪里 找 确切的答案,如果无处可指的话呢?就像关于数组布局的例子一样,甚至是阅读 WG14 N1256 (这是最新的C标准出版物)很难找到。它不在内容中,它不在索引中。它隐藏在“后缀运算符”子节中的一段中,这将是我考虑寻找类似内容的第一个地方。 - Some programmer dude
不是第一个看的地方,我的意思是在我的评论中。 - Some programmer dude
新的C ++标准实际上是一种阅读的乐趣,所以我很难提出任何其他优先选择。它很长,但它非常好,清洁和精确。另一方面,C99标准并不长,所以你也可以直接去那里的源头。 - Kerrek SB


答案:


我发现 http://en.cppreference.com/w/cpp 现在变得非常好! (总是更完整)


4
2017-11-11 07:41





什么都有  标准要么不是确定的,要么简化为远远不够有用的方式。任何确定或真正有用的东西基本上都是  标准。

我知道没有资源以简化的方式涵盖C标准的每个部分(或者甚至是相当数量的部分),我怀疑它的用处。你通常有一个 具体 您需要解决的问题,在这种情况下,您将搜索该特定问题 - 绝大多数人不会 需要 标准,特别是当他们有触手可及的SO资源时。

如果你是一个语言实现者,或者喜欢用难以捉摸的细节来检查语言的黑暗角落,那么是的,获得标准,这是非常宝贵的。如果你只是日常使用这种语言(即使是作为专家),你也可以在没有它的情况下使用它,只需要一点谷歌搜索 (一个)


(一个) 确保其中一个搜索字词是 site:stackoverflow.com :-)


6
2017-11-11 06:58





标准中有太多的材料,没有办法简单地描述它。我不认为你的问题确实是书面的。如果你想要标准库的参考,Josuttis的书 http://www.amazon.com/Standard-Library-Tutorial-Reference/dp/0201379260/ref=sr_1_1?ie=UTF8&qid=1320994652&sr=8-1 永远是一个很棒的参考。


1
2017-11-11 06:58





我猜你已经熟悉了旧的标准,并希望了解较新的不太常用的东西。

这是C99的一个很好的阅读。 它涵盖了变化并具有实际标准的注释。还有一些关于C ++的东西。

维基百科非常适合C ++ 11。 非常适合基础知识,但不详细介绍。

如果您完全理解该语言,那么您通常可以推断出该标准。对于奇怪的角落情况,你将不得不参考标准。


1
2017-11-11 07:02



我不会称之为关于C99的好读物,它非常浅,并且排除了很多变化:限制关键字,指定初始化器,可变长度数组,stdint类型,bool类型,扩展宽字符支持等。 - Lundin


我认为其他一些人回答这个问题是正确的:除非你正在编写编译器或类似的东西,否则很少需要最终权威的ISO标准文档。对我来说,我发现语言创作者对两种语言的主要书籍几乎满足了我的所有需求。他们是:

C程序设计语言 作者:Brian Kernighan和Dennis Ritchie

C ++编程语言 作者:Bjarne Stroustrup

查看每个版本的最新版本,尽管在亚马逊上的快速搜索显示最新版本的语言(C99和C ++ 11)都没有更新。您可能需要补充在线资源,或者查看 A C Primer Plus 和 专业C ++


0
2017-11-11 07:52