内存对齐
2015-08-18 18:55
260 查看
typedef struct { char flag[3]; short value; } sampleStruct; union { char flag[3]; short value; } sampleUnion; 假设 sizeof(char)=1,sizeof(short)=2,那么sizeof(sampleStruct) = 6 , sizeof(sampleUnion) = 4
字符类型占1字节, 可以从任何地址开始
short类型占2字节, 必须从2字节倍数地址开始
int类型占4字节,必须从4字节倍数地址开
字符型占用1字节,不需要字节对齐
short占用2字节,需要两字节对齐
所以sizeof(sampleStruct) = 3 *(1字节) + (1个补齐字节) + 1*(2字节) = 6
联合体
占用大小采用成员最大长度的对齐,最大长度是short的2字节
但 char flag[3]需要3个字节
所以 sizeof(sampleUnion) = 2*(2字节) = 4
相关文章推荐
- 利用Vitamio做自己的视频播放器
- selenium(webdriver)学习笔记3--InternetExplorerDriver
- 关于树状数组区间最值
- PHP 性能分析与实验——性能的宏观分析
- POJ 1862 Stripies
- AWR stop working on linux x86 10.2.0.5
- c#值类型与引用类型
- PHP 性能分析与实验——性能的宏观分析
- java多线Runnable接口和Callable接口
- 高性能JSON工具-FastJson处理超大JSON文本
- Android学习笔记之BitmapFactory.Options实现图片资源的加载...
- hdu 5366 The mook jong
- 配置servlet连接池
- Unity Asset(2)手势插件FingerGesture
- HDU-5400 Arithmetic Sequence(数学 || DP)
- Python3与Python2的区别
- html 中input添加边框
- NetBeans配置Xdebug 远程调试PHP
- 判断程序编译方式
- 键盘小钢琴[C语言][自制]