在C和C ++中,内置整数类型的大小取决于实现。但是它们是否有任何预定义的意义,以便int应该代表机器字大小等?
答案 0 :(得分:5)
从历史上看,int
应该是一种最“自然”的类型
机器硬件上的整数;显然,“自然”有点
主观的,但在过去,它通常很明显,并在那里
并不是那么多可用的整体类型,所以要int
与long
或short
相同的大小是正常的过程。
由于各种原因,大多数64位平台使int
为32位。一
很容易争辩说这不是最“自然”的长度,而是那里
希望32位整数成为默认值,int
显然是明确的
默认的整数类型。是否是最自然的
架构与否是否是次要的尺寸
作为默认值。
关于字大小:历史上,这是最自然的,但是 从很多方面来看,目前还不清楚现代的“字大小”是什么意思 机器:你可以做算术的最大尺寸?公交车的大小 转往内存?传统上,“字大小”一直是 用来表示内部寄存器的宽度(当机器有时) 他们),或基本巴士转移的大小。 (8088通常是 被称为8位机器,虽然它有32位寄存器。)我 今天不会说太多意思。
答案 1 :(得分:4)
有一些措辞,但它不是很严格:
声明为字符(char)的对象应足以存储实现的基本字符集的任何成员。
有五种标准的有符号整数类型:“signed char”,“short int”,“int”,“long int”和“long long int”。在此列表中,每种类型至少提供与列表中前面的存储一样多的存储空间。 (...)普通整数具有执行环境体系结构建议的自然大小,提供其他有符号整数类型以满足特殊需求。
没有关于浮点大小的严格建议:
有三种浮点类型:float,double和long double。 double类型提供至少与float一样多的精度,long double类型提供至少与double一样多的精度。 (...)浮点类型的值表示是实现定义的。
答案 2 :(得分:1)