c语言中存在着一种被称作内存对齐的现象,网络搜索出这个出现的原因是为了方便计算机进行操作,但我并没有进行深入了解。考虑以后有机会再研究一下,进行学习。
http://www.codebaoku.com/it-c/it-c-234376.html 网站给出四个规则,搬运如下进行记录:
规则一:第一个成员必须和结构的地址一定,这很好理解。对于C语言的各种类型,我倾向于将其视作各种个样的指针,类型的不同会使指针内容有不同的读取和表示方式。
规则二:除第一个成员,其他均会在自身大小整倍或默认对齐数(取小值)处。我猜测是否是在寻找成员地址时,编译器?或者cpu?会以整倍数来进行首地址的查找。
规则三:会影响最后的小字节成员的内存浪费大小?
规则四:借用前文网站中的图片
s3是对齐数为8的嵌套结构体,因此其按照其整数倍进行对齐。
暂时想到这么多,以后补充