类包装和对齐

时间:2011-05-05 04:09:22

标签: c++ pragma

在GCC编译器中调用#pragma pack()而没有参数的对齐是什么?

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

1 个答案:

答案 0 :(得分:2)

对于第一部分,你可以鲁莽地使用google:http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html

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

struct
{
  char c;
  int i;
};
根据所使用的机器类型和pragma包,

可以使用8个字节的内存或5个字节的内存。