【每日一C之三】struct字节对齐方式

来源:互联网 发布:新疆大学网络教学平台 编辑:程序博客网 时间:2024/06/05 18:13

每日一C之struct字节对齐方式

       每天一个C语言贝壳厚积薄发积跬步以致千里

 今日贝壳:结构体struct是多个相互关联数据的集合,这些数据以整体形式存储在内存。
            那么结构体A是否占1+4+2=7个字节的内存大小呢,7个似乎很合理,但事实上,为了兼容各种不同的硬件,结构体内存分配采用特定字节对齐方式。
           1.数据类型对齐值:即为sizeof的值。
           2.结构体对齐值:结构体中对齐值最大类型的对齐值。
           3.结构体总大小为 其对齐值得增数倍,需要时编译器会自动添加空字节。
           4.结构体元素按顺序分配内存
            按照上述规则:
      
            a在第0个字节开始,占一个字节;b则在第4个字节开始,占4个字节;c在第8个字节开始,占2个字节。为使结构体总大小为其对齐值得倍数,添加两个空字节,结构体总大小为12.
                 
                     Have a nice day !



6 0
原创粉丝点击