首页
社区
课程
招聘
[原创]对sizeof()操作符的理解
发表于: 2008-4-30 13:20 6409

[原创]对sizeof()操作符的理解

2008-4-30 13:20
6409

本来想在google上看看#pragma pack(1)是什么意思的,却看到它还会对sizeof操作符有影响,所以就想搞清楚它们.
在google上有很多文章(可以先看看)都讲了它们的关系,可是都感觉很乱,所以自己总结了一下.
#pragma pack(x)是通知编译器内存对齐的指令
sizeof()是返回一个对象或类型名的字节长度的操作符

文字叙述:

如果定义了#pragma pack(x),判断x是否小于结构中最大的数据类型字节数
是:结构中各个数据类型按x对齐,
否:按默认对齐
没有定义#pragma pack(x),按默认对齐

默认对齐是这样子的:
如果当前数据类型不是最后一个,而且当前数据类型字节数小于下一个数据类型字节数,则当前数据类型字节数按下一个数据类型字节数对齐
最后,结构总字节数按最大数据类型字节数对齐

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
sizeof不是函数,是操作符好不?
2008-4-30 13:38
0
雪    币: 243
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数

不好意思,以前误认为是函数了
2008-4-30 17:32
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
c++ primer 4th上面介绍的应该是最详细的了
2008-4-30 22:33
0
雪    币: 466
活跃值: (175)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
5
鼓励楼主。~~
2008-5-3 23:12
0
游客
登录 | 注册 方可回帖
返回
//