越来越感到基础知识的重要性。所以,最近回过头来好好学习基础。

为了了解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

我不知道在其他版本会不会是这样的。