#pragma pack()
在 GCC 编译器中不带参数调用的对齐方式是什么?
另外,我经常看到,当我们placement new
在创建对象时,class
经常被打包。这是什么原因?有必要这样做吗?
对于第一部分,你可以不顾一切地使用谷歌: http: //gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html
其次,有时您可能需要控制班级的二进制格式。您可能需要管理内存量和数据结构的实际二进制偏移量:
struct
{
char c;
int i;
};
根据使用的机器类型和编译指示包,可能使用 8 字节内存或 5 字节内存。