VC6默认设置下结构体对齐大小

项目右键  --> Settings  --> C/C++ --> Code Grneration ,默认值为8


对齐原则:

     原则1: 数据成员的对齐规则

                    结构的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始。

                   ( 比如int在32位机器上为4字节,则要从4的整数倍地址开始存储)。


     原则2:结构体的总大小

                    结构体的总大小,也就是sizeof的结果,必须是其内部最大成员的整数倍,不足的要补齐。


     原则3:如果一个结构体中有某些成员是结构体

                   如果一个结构中某些成员是结构体,则这些结构体成员要从其内部最大成员大小的地址开始存储。

                   (比如:struct s1中有成员是struct s2,s2里有char、short、double等成员,则s2应该从8的整数倍地址开始存储)


     原则4:对齐参数如果比结构体成员大sizeof值小,则该成员的偏移量应该以此值为准。

                    (亦即:结构体成员偏移量取二者的最小值)


建议:

        结构中的成员按照数据类型由小到大的顺序进行书写。























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值