long、int、short类型数据占用内存大小是由什么决定

long、int、short类型数据占用内存大小是由什么决定?请详细解析
A.由用户自己定义 B。由c语言编译系统决定
选择哪一个,请详解

long、int、short类型数据占用内存大小是由计算机字长和编译程序决定的。

常用的字长为8位、16位、32位和64位。字长为8位的编码称为字节,是计算机中的基本编码单位。如一个 32 位的字长,可以表示从0至2的32次方减1的无符号整数值,或者表示从负的2的32次方至2的32次方减1的有符号整数值。特殊的算术指令,对字长中的位使用不同的解释,以此作为浮点数。

编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

因此,计算机字长提供了硬件计算精度的支持,编译程序则提供了源程序到机器码的转换。

扩展资料:

字长单位可能被应用到:

1、整数:计算机处理的整数值通常可以有若干种不同的长度,但是其中总有一种正好是该构架的字长。如果有的话,其他的整数长度很可能是字长的倍数或分数。小尺寸的整数尺寸通常是为了提高存储效率;当它被加载处理器时,它经常被转换成字长尺寸的形式。

2、浮点数:计算机处理的浮点数通常是一个字长或字长的倍数。

3、地址:计算机处理的存储器地址必须有足够的尺寸,以便可以表示需要的数值范围,但是又不能过大。经常使用的尺寸是字,不过也可以是字的倍数或分数。

4、寄存器:处理器寄存器根据它要处理的数据类型被设计成适当的尺寸,例如:整数、浮点数、地址。许多计算机构架使用通用”寄存器,它们可以存储任何类型的数据,可以允许存储哪怕是最大的数据类型。它们的尺寸通常是其构架的字长。

参考资料来源:百度百科-数据类型

参考资料来源:百度百科-字长

参考资料来源:百度百科-编译程序

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-22
你声明的时候就自动分配了相应的内存 是固定大小 基本数据类型么
byte:一个字节(8位)
short:两个字节(16位)
int:四个字节(32位)(一个字长)
long:八个字节(64位)
float:四个字节(32位)
double:八个字节(64位)本回答被网友采纳
第2个回答  2010-01-11
long称为长整型,int称为整型,short称为短整型,他们占用内存的大小当然是根据该数据类型所能表达的数据长度决定的啊,例如int型的占用4个字节,那它所能表达的最大位数就是32位,那当定义了int变量的时候就预先在内存中分配了32位长度的内存空间给该变量,其他的类型也是一样,一样我的回答能给你帮助!
第3个回答  2010-01-11
由程序语言标准决定,未定义部分由编译器决定,所以不同的编译器的实现不一定一样。比如TC中,int为两个字节,而VC中int为四个字节。

一般实现参考3楼答案。
要知道你所用编译器的实现,可以用sizeof命令。
比如sizeof(double)
第4个回答  2019-08-04
是由编译程序的设置和机器的字长决定的