-
-
[原创]对sizeof()操作符的理解
-
发表于:
2008-4-30 13:20
6411
-
本来想在google上看看#pragma pack(1)是什么意思的,却看到它还会对sizeof操作符有影响,所以就想搞清楚它们.
在google上有很多文章(可以先看看)都讲了它们的关系,可是都感觉很乱,所以自己总结了一下.
#pragma pack(x)是通知编译器内存对齐的指令
sizeof()是返回一个对象或类型名的字节长度的操作符
文字叙述:
如果定义了#pragma pack(x),判断x是否小于结构中最大的数据类型字节数
是:结构中各个数据类型按x对齐,
否:按默认对齐
没有定义#pragma pack(x),按默认对齐
默认对齐是这样子的:
如果当前数据类型不是最后一个,而且当前数据类型字节数小于下一个数据类型字节数,则当前数据类型字节数按下一个数据类型字节数对齐
最后,结构总字节数按最大数据类型字节数对齐
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!