在C语言中,不同数据类型的长度是由什么决定的?
这是由编译器决定的,不同的编译器会有不同的长度!像Turbo C的int形是16位的,而VC的int是32位的 我 到是觉得是 和编译器 还有系统 相关的 你的 代码的类型 是 和 编译器 沟通 的 编译器 还要 和系统去沟通,例如VC在不同的系统上长度貌似不同 理论上我支持二楼! 主要是由cpu决定的多, 支持2楼.............. 编译器决定的吧 我也想知道 啊啊啊 啊啊啊啊啊啊 计算机语言一般是由一些人提出标准,然后再由某些人通过编译器或者解释器(脚本语言)实现这些标准。对于某些细节没有明确标准的,不同编译器可能会有不同处理,例如你提到的原子数据类型长度,还有经常有人问的“++”,“--”等问题。也有人遇到过其他的神奇的问题,我个人认为不排除是编译器的bug,毕竟编译器也是软件,当然,按标准来写代码一般不会发生问题的。 寄存器的决定的。为什么内存以8位为一单位?假如寄存器是7位的,估计是内存最小单位是7位了!64位寄存器对半为eax(32位),ax(16位),ah(8位)。计算机读取数据都是8的倍数读取,所以内存数据类型也必须以8的倍数。二进制有个特点,多一位等于乘以2倍。c语言或者其他的语言都离不开机器语言,机器语言离不开寄存器和二进制的特性。综上原因,数据类型必须是8的倍数,因为寄存器最大是64位,所以基本数据类型最大是double(64位),不过自己可以设置更大的数据类型,原理一样。。 由编译器决定的吧,你定义数据类型,编译时候给你分配内存 编译环境决定的(系统类型,变压器,编译语言等等) 嗯,比较支持二楼。 个人觉得是编译器 取决于楼主所用的编译系统 支持2楼!!!! 看看 支持10楼的答案~~ 我也来看看
页:
[1]