结构体长度的计算超准确

来源:互联网 发布:linux中怎么查看主机ip 编辑:程序博客网 时间:2024/05/23 11:51

前一段时间的一个笔记,偶然翻出来,发一下吧,感谢何老师,是他独创的方法,他值得经久不息的掌声。

         关于结构体长度的正确计算方法,整体概述:第一种情况,不包含数组:第一个的字节长度是否是第二整数倍,如果不是,则加上一个最小数使它成为第二个的整数倍数,如果是,则第一个与第二个相加,看是不是第三个的整数倍数,一次类推,最后的到得结果要考虑整体对齐,整体对齐的意思是:你得到的这个和必须是每一个元素字节的倍数,如果不是,则考虑加上最小的数,使他成为所有元素字节长度的倍数,则最后这个数就是结构体的长度。第二种情况:包含数组,则第一个数组长度是不是第二个的类型的倍数,不是第二个的整体长度的倍数,而是判断是不是类型的倍数,如果是,则第一个数组的整体长度加上第二个数组的整体长度是不是第三个的数据类型长度的倍数,依次同

具体见代码:

0 0