gpt4 book ai didi

c++ - 结构对齐问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:56 25 4
gpt4 key购买 nike

typedef struct {    
char c;
char cc[2];
short s;
char ccc;
}stuck;

上面的结构应该有这样的内存布局吗?

1   2   3   4   5  6     7
- c - cc - s - ccc -

还是这个?

1    2   3   4    5   6   7     8 
- c - cc - s - ccc -

我认为第一个应该更好,但为什么我的 VS09 编译器选择了第二个? (顺便问一下,我的布局正确吗?)谢谢

最佳答案

我认为您的结构将具有以下布局,至少在 Windows 上是这样:

typedef struct {    
char c;
char cc[2];
char __padding;
short s;
char ccc;
char __tail_padding;
} stuck;

您可以通过重新排序结构成员来避免填充:

typedef struct {    
char c;
char cc[2];
char ccc;
short s;
} stuck;

关于c++ - 结构对齐问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157728/

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