《编译系统透视:图解编译原理》
Posted yahari
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《编译系统透视:图解编译原理》相关的知识,希望对你有一定的参考价值。
【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 }
程序很简单,却凸现了函数调用和执行的最基本情况。我们把此情景展现在内存中,共有三个区域,分别是代码区、静态数据区和动态数据区。情景如图1-1 所示。
代码区装载了这个程序所对应的机器指令,main 函数和fun 函数的机器指令装载位置如图1-2 所示。
全局变量m 的数值装载在静态数据区中,情景如图1-3 所示。
程序开始执行前,动态数据区中没有数据,情景如图1-4 所示。
以上是关于《编译系统透视:图解编译原理》的主要内容,如果未能解决你的问题,请参考以下文章