首页 > 其他 > 详细

struct 对齐机制定义

时间:2020-05-20 00:45:30      阅读:43      评论:0      收藏:0      [点我收藏+]

一般来说,结构体变量占据的内存大小是所有成员变量占据内存大小的总和,但有些例外,需要特别注意。


1、结构体变量的首地址能够被其最宽的基本类型成员的大小所整除。

2、结构体每个成员相对于结构体首地址的偏移量,都是成员大小的整数倍。。

3、结构体的总大小为结构体最宽基本类型成员的大小的整数倍。

 

字节对齐有助于加快计算机的取数速度,节省指令周期,因此不符合以上要求,编译器都会对结构体填充字节。

 

#include <iostream>
using namespace std;

int main()
{
    struct computer
    {
        char  c1; // c1存放在【0】...【1】的位置上。
        short s2; // 偏移必须是4的整数,所以在c1后面【2】...【3】处填入空格,s2存放在【4】...【7】
        int   i3; // i3存放在【8】,但整个结构体大小为最宽的成员的整数倍,
                  // 最宽的int是4,12为4整数倍,所以i3后面【9】...【11】处填充空格
    };
    return 0;
}

  

struct 对齐机制定义

原文:https://www.cnblogs.com/Open-Source/p/12920547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!