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

Can I force a C++ class to compile using the minimum amount of space?

本文关键字:空间 编译 C++ 我可以      更新时间:2023-10-16

我有一个类,我将实例化数十亿个。 我尽力在其中放置尽可能少的数据,当针对 x64 架构编译时,我将其减少到 10 字节:一个unsigned short int和一个size_t。 但是,当我将鼠标悬停在sizeof(myclass)(在VS中)上时,它报告16个字节。 如果我注释掉任何一个字段,类的大小就是您所期望的,分别为 10 字节和 2 字节。

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

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