1

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

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

4

1 回答 1

0

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

于 2017-10-08T04:15:30.767 回答