C语言中struct结构体如何实现内存对齐?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2101个文字,预计阅读时间需要9分钟。
小试刀锋+我们自定义两个结构体A和B:A+struct+A{+char+c1;+char+c2;+int+i;+double+d;+}+;+B+struct+B{+char+c1;+int+i;+char+c2;+double+d;+}+;+通过定义,我们可以看出结构体A和B具有相同的成员,只不在排列上。
•小试牛刀我们自定义两个结构体 A 和 B:
struct A { char c1; char c2; int i; double d; }; struct B { char c1; int i; char c2; double d; };
通过定义我们可以看出,结构体 A 和 B 拥有相同的成员,只不过在排列顺序上有所不同;
众所周知,char 类型占 1 个字节,int 类型占 4 个字节,double 类型占 8 个字节;
那么,这两个结构体所占内存空间大小为多少呢?占用的空间是否相同?
空口无凭,让我们通过编译器告诉我们答案(我使用的是 VS2022,X86)。
本文共计2101个文字,预计阅读时间需要9分钟。
小试刀锋+我们自定义两个结构体A和B:A+struct+A{+char+c1;+char+c2;+int+i;+double+d;+}+;+B+struct+B{+char+c1;+int+i;+char+c2;+double+d;+}+;+通过定义,我们可以看出结构体A和B具有相同的成员,只不在排列上。
•小试牛刀我们自定义两个结构体 A 和 B:
struct A { char c1; char c2; int i; double d; }; struct B { char c1; int i; char c2; double d; };
通过定义我们可以看出,结构体 A 和 B 拥有相同的成员,只不过在排列顺序上有所不同;
众所周知,char 类型占 1 个字节,int 类型占 4 个字节,double 类型占 8 个字节;
那么,这两个结构体所占内存空间大小为多少呢?占用的空间是否相同?
空口无凭,让我们通过编译器告诉我们答案(我使用的是 VS2022,X86)。

