跳至内容
响水凹
欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
computer:c:tips:struct_pad_size
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 结构体的填充与大小 ====== 出于[[.:alignment|对齐(Alignment)]]的需要,结构体成员之间,以及最后一个成员之后,可能会有一些填充空间(也称为空洞,hole)。 成员之间的填充是为了满足成员的对齐要求。最后的填充则是为了满足整个结构体的对齐要求:要保证结构体对象能做为数组的元素,而数组的各个元素的地址是连续的,所以结构体的起始地址与结束地址都要在对齐边界上。 sizeof计算的结构体大小(size),包含填充空间在内,所以,结构体size不是简单的等于各个成员的大小之和。 例如下面的结构体定义: <code c> struct s { double value; char name[10]; }; </code> 如果要求double类型按8字节对齐,则sizeof(struct s)的大小可能是24字节,多余的填充用来确保结构体满足8字节的对齐限制。 {{tag>C语言}}
computer/c/tips/struct_pad_size.txt
· 最后更改: 2014/11/01 02:02 由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部