函数调用过程分析
在分析C语言函数调用过程之前我们有必要理解一下程序内存结构。内存空间被划分为:栈区(heap)、堆区(stack)、静态全局区、文字常量区以及函数代码区。(此处只是内存区域的大致划分,已经能够支撑后文将要讨论的内容)其结构如下图所示:
栈区主要用于系统自动进行分配局部变量,函数形参空间。它位于内存中相对较高的位置,地址由高向低增长。(此处的堆栈与数据结构中的堆栈并不是一回事,要注意区分。)
现在我们可以通过一个简单的Add函数调用来对其调用过程进行分析:
include<stdio.h>
int Add (int a,int b)
{
int z = 0;
z = a+b;
return z;
}
int main()
{
int a =