vc++局部变量为什么在栈中不紧挨存放,而全局变量却是紧挨存放的?
#include "stdafx.h"
int a=0;
int b=0;
int c=0;
int _tmain(int argc, _TCHAR* argv[])
{
int i=0;
int j=0;
int n=0;
printf("%d\n",&a);
printf("%d\n",&b);
printf("%d\n",&c);
printf("%d\n",&i);
printf("%d\n",&j);
printf("%d\n",&n);
return 0;
}
执行后输出的地址为:
//a,b,c紧挨存放
4289716
4289720
4289724
//i,j,n却间隔12h(18)个字节。。
1245024
1245012
1245000
这样做不就很浪费本就不宽裕的栈空间吗?
不知道vc++这样做是基于什么考虑的,为什么不能也紧挨存放呢?
谢谢