读书人

常见的笔试面试题(概念性的:死锁过

发布时间: 2013-09-11 16:26:28 作者: rapoo

常见的笔试面试题(概念性的:死锁,进程通信方式,指向字符变量的指针,文件索引结构,可被重载的运算符)
#pragma pack(push) //保存对齐状态#pragma pack(4)//设定为4字节对齐struct test{ char m1; double m4; int m3;};#pragma pack(pop)//恢复对齐状态
以上结构体的大小为16,首先为m1分配空间,其偏移量为0,满足我们自己设定的对齐方式(4字节对齐),m1大小为1个字节。接着为m4分配空间,这时其偏移量为4,需要补足3个字节,这样使偏移量满足为n=4的倍数(因为sizeof(double)大于4),m4占用8个字节。接着为m3分配空间,这时其偏移量为12,满足为4的倍数,m3占用4个字节。这时已经为所有成员变量分配了空间,共分配了16个字节,满足为n的倍数。如果把上面的#pragma pack(4)改为#pragma pack(8),那么我们可以得到结构的大小为24。

读书人网 >编程

热点推荐