gpt4 book ai didi

c - 下面两个例子编译后会占用相同的内存吗?

转载 作者:太空狗 更新时间:2023-10-29 15:26:17 24 4
gpt4 key购买 nike

请帮助我理解这个概念:

如果两者都声明和初始化,编译后哪个会占用更多内存?

struct V
{
int a, b;
};

struct X
{
struct V v;
int N;
};

或:

struct X 
{
int a, b, c;
};

最佳答案

结构填充规则:

  • 只有当一个结构成员后面跟着一个对对齐要求更大的成员或在结构的末尾时,才会插入填充。

  • 最后一个成员用所需的字节数填充,以便结构的总大小应该是任何结构成员的最大对齐的倍数。

这表明两者将占用相同的内存空间,每个 12 字节,假设 int 的大小为 4 字节。原因是两种情况下都没有填充。

关于c - 下面两个例子编译后会占用相同的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29652386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com