越来越感到基础知识的重要性。所以,最近回过头来好好学习基础。
为了了解c代码编译出来的汇编代码,写了一个小程序代码如下:
int main(void)
{
int a=3;
return 0;
}
通过gcc -S test.c编译成汇编代码后,发现,在局部堆栈中分配内存的时候是以16B为基准的。
int a=0;int b=1; int c=3;在局部堆栈区实际上是分配了16B,
int a=1;int b=2;int c=3;int d=4;int e=5; 在局部堆栈区实际上会分配32B
也就是说局部堆栈分配内存是16nB
我用的gcc版本是gcc 4.1.2
我不知道在其他版本会不会是这样的。