先定义的变量地址比后定义的变量地址高?该怎么处理

先定义的变量地址比后定义的变量地址高?

#include<stdio.h>
int  main()
{
int a, b, c;
int d, e, f;
printf("%p\n", &a);
printf("%p\n", &b);
printf("%p\n", &c);
printf("%p\n", &d);
printf("%p\n", &e);
printf("%p\n", &f);
return  0;
}

为什么a的地址要比b的高?a先声明,应该a的地址比b的低才是呀?
------解决方案--------------------
引用:
Quote: 引用:

未必 
怎么安排都有可能 
顺序定义 ABC
内存顺序 可能是 ACB CAB CBA BAC.....

为什么我测出来的是
a>b>c>d>e>f
没有为什么 
所谓怎么安排都有可能 
除了包括 ACB CAB BAC之外
自然包括 CBA ABC 这样的情况 
这才叫做 "都有可能"
------解决方案--------------------
引用:

#include<stdio.h>
int  main()
{
int a, b, c;
int d, e, f;
printf("%p\n", &a);
printf("%p\n", &b);
printf("%p\n", &c);
printf("%p\n", &d);
printf("%p\n", &e);
printf("%p\n", &f);
return  0;
}

为什么a的地址要比b的高?a先声明,应该a的地址比b的低才是呀?

VC6 Release模式下,a的地址要比b的低
0012FF38
0012FF3C
0012FF40
0012FF44
0012FF48
0012FF4C
VC6 Debug模式下,a的地址要比b的高
0012FF7C
0012FF78
0012FF74
0012FF70
0012FF6C
0012FF68
其实不要纠结变量的地址顺序,除非你想hack
从编译器的角度来说,变量的地址是可以随机安排的,又不影响寻址使用,不一定非要按排列顺序