1

#pragma pack()在 GCC 编译器中不带参数调用的对齐方式是什么?

另外,我经常看到,当我们placement new在创建对象时,class经常被打包。这是什么原因?有必要这样做吗?

4

1 回答 1

2

对于第一部分,你可以不顾一切地使用谷歌: http: //gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html

其次,有时您可能需要控制班级的二进制格式。您可能需要管理内存量和数据结构的实际二进制偏移量:

struct
{
  char c;
  int i;
};

根据使用的机器类型和编译指示包,可能使用 8 字节内存或 5 字节内存。

于 2011-05-05T04:13:13.707 回答