我试图找出 C++ 标准是否指定了各种类型的大小之间的关系。例如,https://stackoverflow.com/a/589599/1175080 上的这个答案似乎声称:

sizeof(short int) <= sizeof(int) <= sizeof(long int)

https://stackoverflow.com/a/589684/1175080 的另一个答案也有类似的说法:
sizeof(int) <= sizeof(long)

我正在通过 n3337.pdf (我相信 C+11 标准的一个很好的代理),但我找不到保证这些不等式的特定语言。

n1256 (C99) 中,我可以在 5.2.4.2.1 Sizes 部分找到特定语言
的整数类型,它清楚地说明了每种类型的最小值和最大值,间接建立了大小之间的相对顺序。

这些不等式是在 C++ 标准中类似地定义还是直接从 C 继承而来?标准中的语言在哪里?

最佳答案

在 n3337 中,该部分是 3.9.1[basic.fundamental]/2 ,第二段(重点是我的):



请注意,C 标准中的 5.2.4.2/1 只定义了每个整数类型的最小范围,它不强制排序——我可以有从 -32767 到 32767 的 int 和从 -2147483647 到 2147483647 的 short 并且仍然符合本节。

然而 6.2.5.8 更加明确:



6.3.1.1 告诉你:

关于c++ - C++11 标准中的哪一部分规定了原始数据类型大小之间的相对顺序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50506061/

10-11 19:39