ints有多宽 我模糊地记得在C++标准中读到一个章节,它说明了整数类型的最小宽度要求。我再也找不到这个了。我能找到的最接近的是C标准中的描述

ints有多宽 我模糊地记得在C++标准中读到一个章节,它说明了整数类型的最小宽度要求。我再也找不到这个了。我能找到的最接近的是C标准中的描述,c++,c++11,C++,C++11,在哪里可以找到整数类型的最小宽度?标准中定义的最小范围要求是3.9.1-基本类型: 声明为char字符的对象应足够大,以存储实现的基本 字符集 及 有五种标准的有符号整数类型:“有符号字符”、“短整数”、“整数”、“长整数”和“长整数” 长整型”。在此列表中,每种类型提供的存储空间至少与列表中其前面的类型相同。 也可能存在实现定义的扩展有符号整数类型。标准和扩展版本已签署 整数类型统称为有符号整数类型。纯整数具有 执行环境的架构44;提供其他有符号整数类型以满足特殊要求 需要 本页脚注44说:

在哪里可以找到整数类型的最小宽度?

标准中定义的最小范围要求是3.9.1-基本类型:

声明为char字符的对象应足够大,以存储实现的基本 字符集

有五种标准的有符号整数类型:“有符号字符”、“短整数”、“整数”、“长整数”和“长整数” 长整型”。在此列表中,每种类型提供的存储空间至少与列表中其前面的类型相同。 也可能存在实现定义的扩展有符号整数类型。标准和扩展版本已签署 整数类型统称为有符号整数类型。纯整数具有 执行环境的架构44;提供其他有符号整数类型以满足特殊要求 需要

本页脚注44说:

44也就是说,大到足以包含头中定义的INT_MIN和INT_MAX范围内的任何值

5.2.4.2.1中的C标准规定:

// minimum value for an object of type int
INT_MIN -32767 // −(215 − 1)
// — maximum value for an object of type int
INT_MAX +32767 // 215 − 1

不,这些不是唯一的保证。有最小范围的要求,暗示每种类型的最小尺寸要求。记录的范围要求在哪里?你说得对,“本杰明德利,谢谢。”格拉斯纳拉克:C++中不存在具体的最小范围要求。它们只不过是标题和C99标准的脚注参考,这似乎暗示了一个建议的范围,而不是一个严格的要求。@greyfade:文件说它们的实现定义值的绝对值应等于或大于所示的值…-我不认为这不是一个要求。如果您真的希望在代码中使用这些类型的大小,我建议在stdint或Boost.Integer中使用精确大小的类型。他们能够跨平台保证所代表类型的大小。如果您只是为了知道而想知道,那么编译器会有所不同。给出整数类型所需的最小范围。对于int,最小范围为-32767到+32767 5.2.4.2.1。