用法
#pragma pack是C/C++里面设置字节对齐方式的预编译函数
解释
先看下面代码:
#include <iostream>
using namespace std;
class test {
char m1;
float m2;
char m3;
};
int main()
{
test t;
cout << sizeof(t);
}
这个类的大小是多少呢?
1+4+1=6?
运行结果如下
自然对齐
为什么会是12呢?其实类在分配空间的时候,会按一定方式进行对齐。
首先看第一个成员m1,它的大小为1字节,这时自然对界就是1,它就会被放在起始位置,如下图
当m2过来时,由于它的大小为4字节,这时自然对界变为