我试图找出 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/