在linux下的存储形式,其中黑色包围起来的才是我们的存储空间白色的部分是保留区域,通过下面的两幅图可以知道其中的一些道理,知道其中所谓的完成一样的功能,保证存储空间小:


  在windows下的存储形式,其中黑色包围起来的才是我们的存储空间白色的部分是保留区域:

  从上面的几个图片可以知道在C语言中的内存分布是比较复杂的。一定要注意存储的对齐形式,这样才能了解其中的分布规律。当然了上面的形式都只是在小端处理器模式下的存储形式,对于大端也有类似的情况,只是存储的位置不一样,但是内存的大小是相同的。
  结构体的定义不能是随便的,如果考虑好对齐关系能够节省大量的存储空间。实现效率和存储空间的折中。虽然#pragma pack(n)等能够改变其中的对齐方式,不过建议不要随便改动,可能得不偿失。