【发布时间】:2011-12-26 19:06:31
【问题描述】:
在这里得到一个错误的答案后,因为我不是最新的 C 标准,我开始寻找一些地方来描述 C 和 C++ 标准中的内容。
我不想要完整的标准,我在 Where do I find the current C or C++ standard documents? 中找到了链接,也不需要亲密的技术讨论。相反,我想要一些简要描述标准的东西,如果我想更彻底地检查它,请参考实际标准,并且可能会说明该功能是在哪个标准中引入的。
有这样的资源吗?
编辑:问题的一点背景知识:我已经编写 C 语言 20 多年了,当我了解到它时,并没有多少标准化。官方标准中的内容并未得到广泛实施。这些年来,我已经成为了足够优秀的 C 程序员,以至于我的朋友和大学在遇到问题时都会向我寻求帮助。
但是,当我学习 C 时,有人告诉我,多维数组的内存布局之类的东西是特定于实现的,当我看到有关该主题的问题时,我说它不是标准化的,只是被告知我错了。但即使知道这一点,我也很难找到任何地方说它在标准中,而且更难找到它最初是在哪个标准中引入的。
如果有地方说“多维数组的内存布局在 C9x 中标准化,在标准文档的 Y 部分”,那么很容易找到并将其提供给提出问题的人。我对实际布局并不感兴趣,只是它已经标准化,如果我真的想要一个明确的答案,我应该去哪里看。
这当然适用于其他事情。就像知道头文件“<yyy.h>”是由标准“C90”强制要求的,并且我应该在标准中寻找它的基本原理和内容。这些东西散开时很难找到,把它收集在一个地方会更容易找到。
【问题讨论】:
-
有趣的问题,但在我从书籍和网上阅读和学习 C++ 的所有时间里,我从未遇到过这样的事情,所以如果我需要真正提供明确的证据,我会参考标准.在这个站点和 c++ 新闻组(comp.lang.c++ 及其主持的表亲)中有很多标准合规性讨论,但它是分布式的,而不是像你想要的那样,
C++ Standard, Abridged and Annotated。 -
“我对实际布局并不感兴趣,只是它已经标准化,如果我真的想要一个明确的答案,我应该去哪里看。”唯一的确定性答案将在标准中找到;其他所有人都是它的副本或简化版。而且大多数简化对某事物何时标准化的兴趣不如对如何使用它的兴趣。所以一般来说,你要找的东西根本不存在,因为大多数人不在乎。
-
@NicolBolas 但是,如果没有指向它的地方,你怎么知道在哪里找到?就像在关于数组布局的示例中一样,即使阅读WG14 N1256(这是最新的 C 标准出版物)也很难找到。它不在内容中,不在索引中。它隐藏在“后缀运算符”小节的一段中,这将是我首先考虑寻找类似内容的地方。
-
不会是第一个看的地方,我的意思是在我的评论中。
-
新的 C++ 标准实际上是一种阅读的乐趣,所以我很难推荐其他任何东西来取代它。它很长,但呈现得非常好,干净而精确。另一方面,C99 标准并不是很长,所以你也不妨直接去那里的源代码。