C / C ++中数据类型名称的含义

时间:2012-10-22 15:46:44

标签: c++ c types

在C和C ++中,内置整数类型的大小取决于实现。但是它们是否有任何预定义的意义,以便int应该代表机器字大小等?

3 个答案:

答案 0 :(得分:5)

从历史上看,int应该是一种最“自然”的类型 机器硬件上的整数;显然,“自然”有点 主观的,但在过去,它通常很明显,并在那里 并不是那么多可用的整体类型,所以要intlongshort相同的大小是正常的过程。

由于各种原因,大多数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)

与Java不同,C被设计为平台启用程序,而不是独立平台。跨平台兼容性比使用最适合给定平台的数据类型大小的优先级要低得多。因此,整数类型不是由C标准指定的,并且完全是特定于平台的