编译后内存的布局是否固定?怎么固定

编译后内存的布局是否固定?如何固定?
例如:
struct a
{
    bool z;
    float b;
    float c;
}

那么在内存的布局是否还是按顺序呢?
如果不是的话,如何让它按顺序来编译呢?
内存布局

------解决方案--------------------
我建议你这么弄下
先给结构体变量赋值
然后打印内存
#include <stdio.h>
struct a
{
    bool  z;
    float b;
    float c;
};
void main()
{
a v1;
v1.z = 1;
v1.b = 2.3;
v1.c = 5.7;
char *p = (char *)&v1;

for(int i=0; i< sizeof(a); i++)
{
printf("%02x\n",*(p++));
}
}
------解决方案--------------------
固定是什么意思?如果要有动态分配好像就不固定了吧。。
------解决方案--------------------
不懂楼主的需求,为什么要固定内存?你想把软件关了后还想打开恢复成关闭的样子?
------解决方案--------------------
我也没懂  给楼主放鞭炮  编译后内存的布局是否固定?怎么固定
------解决方案--------------------
“内存编译后的偏移是否固定”
基本是 固定的,不过还 与 对齐方式 有关。 
------解决方案--------------------
顺序应该是固定的,偏移就要看字节对齐方式了
------解决方案--------------------
引用:
引用:不懂楼主的需求,为什么要固定内存?你想把软件关了后还想打开恢复成关闭的样子?
我的意思是内存编译后的偏移是否固定
偏移是固定的!