我可以使用最小的空间强制C ++类进行编译吗?

时间:2017-10-08 02:16:57

标签: c++ compiler-optimization memory-optimization

我有一个班级,我将实际上实例化数十亿。我尽力在其中放入尽可能少的数据,并在编译为x64架构时将其降低到10个字节:unsigned short intsize_t。但是,当我将鼠标悬停在sizeof(myclass)(在VS中)时,它会报告16个字节。如果我注释掉其中一个字段,那么类的大小就是你所期望的,分别是10个字节和2个字节。

有没有办法指示编译器只为我的类使用10个字节?

1 个答案:

答案 0 :(得分:0)

#pragma pack可以缩小您的结构。另一方面,它可以使得检索成员数据更慢,因为不保证字节的对齐。因此,编译器将需要额外的指令来从不同的存储器位置获取数据。有关详细信息,此链接有一个很好的帖子:#pragma pack effect