加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数据类型所占字节

(2013-01-04 22:59:42)
标签:

it

分类: interview
总的说来,可以分为基本数据类型和结构体。
数据类型最简单的测试方法就是通过sizeof函数打印出来。

基本数据类型所占字节数如下
类型                 字节
char                  1
short int             2
int                   2(16bit)/4(32bit)/4(64bit)
long                  4(16bit)/4(32bit)/8(64bit)
指针变量              4
float                 4
double                8
long long             8
long double           10
各种数据类型所占字节长度,主要是int型,long型和指针数据类型的差异。
int型数据,如果是16bit平台,则是2个字节,如果是32bit的,则占4个字节,64bit仍然是4字节。
long型数据,如果是16bit平台,则是4个字节,如果是32bit的,则占4个字节,64bit仍然是8字节。
指针型数据,比较特殊,大多是4个字节,只有在16bit平台,并且指针式段内寻址时才是2个字节。

结构体
struct的大小为各成员大小的总和,但是也要注意根据平台来填补漏洞;
union为所有成员中最大的;
关于位域的结构体,因为跟编译器使用的对齐方式有关。
关于字节对齐的内容,可以参见我另一篇blog“字节对齐”。

另外,有一点需要注意:
sizeof(表达式)这样的使用,sizeof是给出其操作数所需要占用的内存大小,在编译时就可以确定。因此不需要去计算表达式的值;
因此有
int i = 3;
sizeof(++i + ++i)后,i的值仍然为3,原因如上。




0

阅读 收藏 喜欢 打印举报/Report
后一篇:const
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有