在我的印象中,我似乎读过类似“类中的属性应该被声明为适合某些东西(如8字节)”的东西,这个想法是这样的:
class A{
int a;
int b;
float c;
};
而不是
class A{
int a;
float c;
int b;
};
因为2 int一起可以适合8个字节。
但是我忘记了我的想法,我甚至忘记了关于它的主要想法,这是否合理?
答案 0 :(得分:0)
您正在寻找的概念是结构填充(在结构的元素之间放置空格)或结构填充(将空间挤压在一起)。我相信你可以谷歌吧。
但基本答案是肯定的,这些结构的大小可能不同。如果浮点数需要与8个字节对齐以获得性能,并且此平台上的整数各为4个字节,那么您最终会在第二个布局中浪费4个字节。 a和c之间留有4个字节的间隙,使c与8个字节对齐。但所有这些都取决于你的编译器和平台来决定。