【问题标题】:Which sections of the C standard prove the integer type correspondence? [duplicate]C 标准的哪些部分证明了整数类型对应? [复制]
【发布时间】:2021-05-21 04:02:34
【问题描述】:

在 C11 的最新草案之一 ([C11_N1570]) 中,我找不到以下陈述的证明(我相信这些陈述是众所周知的),见下文。任何人都可以向我推荐证明以下句子的 C 标准的特定部分吗? (如果我错了,请纠正我)

类型 shortsigned short 相同(TODO:链接)。
类型[[un]signed] short 与对应的[[un]signed] short int 相同(TODO: 链接)。

类型intsigned int 相同(TODO:链接)。

类型 longlong int 相同(TODO:链接)。
类型[[un]signed] long 与对应的[[un]signed] long int 相同(TODO:链接)。

类型 long longlong long int 相同(TODO:链接)。
类型[[un]signed] long long 与对应的[[un]signed] long long int 相同(TODO: 链接)。

理想情况下,我更愿意为 C 和 C++ 回答这个问题,现在我对 C 很感兴趣。

【问题讨论】:

  • 虽然 C 和 C++ 有很多共同的特性,但它们是两种不同的语言。您特别关注哪些标准?
  • 然后您开始谈论 C++,显然 C 标准对它绝对没有意见。请不要将两者混为一谈。
  • 对于 C++,您可以在标准草案中看到 this table
  • 回答问题,见6.2.5/4括号内的句子指的是6.7.2/2
  • @RobinKuzmin 我建议删除最后一句话(提到 C++ 的那个)并删除 c++ 标签。就目前而言,您似乎在同时提出两个问题。由于 C 和 C++ 标准是分开的、独立的文档,因此不应试图在一个 SO 问题中同时涵盖两者。

标签: c++ c language-lawyer c11


【解决方案1】:

链接到 C 标准的在线 HTML 版本:section 6.7.2/2。可能和section 6.2.5/4一起。

链接到 C++ 标准的在线 HTML 版本:[tab:dcl.type.simple]

【讨论】:

  • 答案应直接包含所有相关信息。外部链接有利于补充信息,但应被视为随时可能更改或消失。答案应该解释,而不仅仅是指向文字。
  • @EricPostpischil 一般来说,我会同意这一点。但是,在这种情况下,OP 明确要求参考标准,而不是引用或解释。
  • 乍一看,我以为您已链接到整个标准,这显然没有帮助。您实际上似乎在说的是“C 标准部分 6.7.2p2 和 6.2.5p4 保证这些等价性”,这似乎确实是 OP 想要的,但请不要让未来的读者从 URL 中挖掘出来。
  • @zwol 好点。我重新格式化了标准部分名称的链接。
猜你喜欢
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 2011-08-10
  • 1970-01-01
  • 2013-01-29
  • 2014-05-27
相关资源
最近更新 更多