【问题标题】:Does the order of class property affect the object size? [duplicate]类属性的顺序会影响对象大小吗? [复制]
【发布时间】:2015-07-30 06:07:59
【问题描述】:

在我的印象中,我似乎读过类似“类中的属性应该被声明为适合某些东西(比如 8 字节)”,这个想法是这样的:

class A{
    int a;
    int b;
    float c;
};

而不是

class A{
    int a;
    float c;
    int b;
};

因为 2 个 int 一起可以容纳 8 个字节。

但我忘了我的想法是从哪里来的,我什至忘记了它的主要想法,这合理吗?

【问题讨论】:

标签: c++


【解决方案1】:

您正在寻找的概念是结构填充(在结构的元素之间放置空间)或结构包装(将空间挤压在一起)。我相信你可以谷歌它。

虽然基本答案是肯定的,但这些结构的大小可能不同。如果浮点数需要对齐到 8 个字节以提高性能,并且此平台上的 int 每个为 4 个字节,那么您最终会在第二个布局中浪费 4 个字节。在 a 和 c 之间留有 4 字节的间隙,以使 c 与 8 字节对齐。但这一切都取决于你的编译器和平台来决定。

【讨论】:

    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2015-04-17
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多