这表明在64位Java虚拟机中,char占2个字节,int占4个字节,long占8个字节,float占4个字节,double占8个字节。
int: 4个字节(固定) unsigned int : 4个字节(固定) float: 4个字节(固定) double: 8个字节(固定) long: 8个字节 unsigned long: 8个字节(变化*其实就是寻址控件的地址长度数值) long long: 8个字节(固定) 除了*与long随操作系统子长变化而变化外,其他的都固定不变(32位和64相比) bool 1个字节 char ...
//64位编译输出:int=4,char=1,double=8structA=24structB=24//structA: 4+(1+3)+8+(1+7)= 24//structB: (1+7)+8+(1+7)= 24 //未遇到8位数据类型时时4字节对齐,遇到8字节数据类型变为8字节对齐//32位编译输出:int=4,char=1,double=8structA=20structB=16//struct A : 4+(1+3)+8...
int 2字节,float 4字节,double 8字节,char 1字节
int(4字节)long(32位机器上4字节, 64位机器上8字节)short(2字节)float(4字节或8字节)double(8字节)
大部分的变量并没有区别,比如char是8位,double是64个位。最关键的是int和指针变量,从测试看,常用的系统(windows/Linux)都是兼容32位系统的标准,但是在C/C++的标准里,并没有定义变量长度,所以最终是由编译器决定的。更详细的分析,可以看这篇博客参考文档。 不过我们最常用的其实也是X86平台,Linux和windows,所以姑...
数据类型32位64位char11int44long48float44double88long double1216long long88 可以指定int的长度:数据类型32位64位int32_t44int64_t88 类似的,还有uint32_t和uint64_t 其它数据类型 1,size_t:跟机器字长一样;2,off_t:32位机器下默认是32位长,这时无法对大于4G的文件偏移操作,这时off_t...
double: 8个字节 注意:64bit和32bit下 long 和char*所占字节是不同的 4个字节的最大范围是4294967295, int只是占四个字节 不能用int来存储四个字节的数,要不然会越界 int与NSInteger区别 在苹果的api实现中,NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。
这不简单,自己写个程序,测测不久知道了,32位下好像int、long、float等都是4个字节,double为8个字节。。
不同的数据类型在32位和64位下所占字节的区别32位编译器:char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: ...