数据类型字节与平台编译器等的关系整理

         32位      64位
char      1       1
int       4      大多数4,少数8
long      4       8
float     4       4
double    8       8
指针        4       8
 

以上是一般情况,基本够用,主要是接触平台少,搜罗了一些网上的讨论,放在下面:
===============================
编译器一般会做这些设定:
char占一个机器字节byte,一般是8位,但也出现过6位,7位,9位,12位和16位。
int占一个机器字word,一般是32位。但也出现过8, 9, 12, 18, 24, 36, 39, 40, 48和60位。
long占一个通用寄存器,所以32位机上是32位,64位机上是64位。
指针和long一样大。
float如果是按照IEEE的标准是32位。
double如果是按照IEEE的标准是64位。
===============================
CPU、OS、Compiler综合决定。
比如32位下Windows,Tubor C,int是16位,VC,int是32位(这是Compiler决定的例子);
又入Java,int哪里都是32位(举Java的例子是想说,即使是16位的平台,也可以强制实现的时候int是32位的);
⋯⋯
这样的组合还很多,我们用过的比我们没有用过的平台要少很多,所以对于这种问题,我更倾向说是平台依赖的(环境依赖的),什么是平台,CPU,OS加Compiler。
===============================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值