C语言结构体内存的对齐知识详解
前言在前面的章节中,我们谈到了C语言中整数以及浮点数的储存今天,我们来谈一谈一些关于结构体内存的知识。我们先来看一个例子:大家来猜猜这个结构体S1的内存是多少?相信会有人给出 6 的结果,他们或许是这样想的,两个 char 类型分别为一个字节,一个 int 类型又为4个字节,加起来刚好为6个但是结果真是如此吗?我们来看看运行结果:为什么呢,接下来我们就引出正文。一.结构体内存对齐规则首先,正如引例所示,结构体的内存并不是简简单单的将结构体各个成员的大小相加。结构体的大小往往遵循着结构体的对齐规则:。这里要注意的一点就是要解释一下这个对齐数的概念对齐数:编译器默认的一个对齐数 与 该结构体变量成员自身大小的较小值。
下载地址
用户评论