【Wed Jun 01 2016 16:32:21】

  C 程序运行的核心是函数的执行和调用,它构成了整个C 程序运行时结构的基础框架。这一运行过程主要是在程序指令的驱动以及数据压栈、清栈的支持下实现的。为了介绍这一过程,我们设计了一个简单C 程序,如下所示:

 1 int fun(int a,int b);
 2 int m = 10;
 3 
 4 int main()
 5 {
 6     int i=4;
 7     int j=5;
 8     m = fun(i,j);
 9     printf("%d\n", m); //9
10     return 0;
11 }
12 
13 int fun(int a,int b)
14 {
15     int c = 0;
16     c = a + b;
17     return c;
18 }
View Code

  程序很简单,却凸现了函数调用和执行的最基本情况。我们把此情景展现在内存中,共有三个区域,分别是代码区、静态数据区和动态数据区。情景如图1-1 所示。
  代码区装载了这个程序所对应的机器指令,main 函数和fun 函数的机器指令装载位置如图1-2 所示。
  全局变量m 的数值装载在静态数据区中,情景如图1-3 所示。
  程序开始执行前,动态数据区中没有数据,情景如图1-4 所示。

posted on 2016-06-01 18:02  yahari  阅读(2094)  评论(0编辑  收藏  举报