欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

结构体大小计算规则

墨初 知识笔记 130阅读

如何计算结构体大小?

答:用最简单的方法,通俗易懂的方法计算结构体大小。 结构体计算要遵循字节对齐原则。 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding);

结构体怎么计算?

答:结构体计算要遵循字节对齐原则。 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding) 其实暂且不管这三原则,我的方法只要记住第三个,就是结构体大小结果要为成员中最大字节的整数倍。

结构体有自己的大小吗?

答:回答是肯定的,结构体也有自己的大小,但是 结构体的大小并不是简单地将每个结构体成员的大小相加就能得到。 第一个成员在与结构体变量偏移量为0的地址处。 (即结构体的首地址处,即对齐到0处)

结构体的整体大小是什么?

答:结构体的总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。 如果嵌套了结构体,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。 对齐数 = 该结构体成员变量自身的大小与编译器默认的一个对齐数的较小值。

声明:无特别说明,转载请标明本文来源!