我有一个班级,我将实际上实例化数十亿。我尽力在其中放入尽可能少的数据,并在编译为x64架构时将其降低到10个字节:unsigned short int
和size_t
。但是,当我将鼠标悬停在sizeof(myclass)
(在VS中)时,它会报告16个字节。如果我注释掉其中一个字段,那么类的大小就是你所期望的,分别是10个字节和2个字节。
有没有办法指示编译器只为我的类使用10个字节?
答案 0 :(得分:0)
#pragma pack
可以缩小您的结构。另一方面,它可以使得检索成员数据更慢,因为不保证字节的对齐。因此,编译器将需要额外的指令来从不同的存储器位置获取数据。有关详细信息,此链接有一个很好的帖子:#pragma pack effect