5.2全局栈式存储分配 本节介绍 介绍程序运行时所需的各个活动记录在存储 空间的组织 描述过程的目标代码怎样访问绑定到局部名 字的存储单元 ”介绍三种分配策略 -静态分配策略 栈式分配策略 堆式分配策略
5 2. 全局栈式存储分配 本节介绍 • 介绍程序运行时所需的各个活动记录在存储 空间的组织 • 描述过程的目标代码怎样访问绑定到局部名 字的存储单元 • 介绍三种分配策略 – 静态分配策略 – 栈式分配策略 – 堆式分配策略
5.2全局栈式存储分配 5.2.1运行时内存的划分 代码 静态数据 堆 ↓ 栈
5 2. 全局栈式存储分配 5.2.1 运行时内存的划分 代 码 静态数据 堆 栈
5.2全局栈式存储分配 1、静态分配 名字在程序被编译时绑定到存储单元,不需 要运行时的任何支持 绑定的生存期是程序的整个运行期间
5 2. 全局栈式存储分配 1、静态分配 • 名字在程序被编译时绑定到存储单元,不需 要运行时的任何支持 • 绑定的生存期是程序的整个运行期间
5.2全局栈式存储分配 2、静态分配给语言带来限制 递归过程不被允许 数据对象的长度和它在内存中位置的限制, 必须是在编译时可以知道的 数据结构不能动态建立
5 2. 全局栈式存储分配 2、静态分配给语言带来限制 • 递归过程不被允许 • 数据对象的长度和它在内存中位置的限制, 必须是在编译时可以知道的 • 数据结构不能动态建立
5.2全局栈式存储分配 。 例C程序的外部变量、静态局部变量以及程 序中出现的常量都可以静态分配 声明在函数外面 -外部变量 静态分配 - 静态外部变量 静态分配 声明在函数里面 -静态局部变量 静态分配 自动变量 不能静态分配
5 2. 全局栈式存储分配 • 例 C程序的外部变量、静态局部变量以及程 序中出现的常量都可以静态分配 • 声明在函数外面 –外部变量 —— 静态分配 –静态外部变量 —— 静态分配 • 声明在函数里面 –静态局部变量 —— 静态分配 –自动变量 —— 不能静态分配