编译原理与运行存储分配
发布时间
阅读量:
阅读量
- 运行时内存的划分

各区段功能说明:
1、程序代码区:存放函数体的二进制代码。
2、全局区(静态区)(static) : 全局变量与静态变量 的存储区域是连续分配的,在程序结束后由系统进行释放。
3、文字常量区:常量字符串被存储在此处,在程序结束后由系统进行释放。
4、堆区(heap) : 一般由程序员进行内存分配,并在程序员不释放的情况下,在程序结束时操作系统会回收内存空间。需要注意的是它与数据结构中的堆并非同一概念,在内存分配过程中采用链表方式进行操作。
5、栈区(stack) :由编译器自动管理内存空间,并用于存放函数调用时所需的参数值以及局部变量值等信息,在操作过程中遵循先进后出的原则进行管理运作。
全局变量 是在堆 中,初始化为0
- 静态存储分配和动态存储分配:
对于那些可以在 compile time 就可以被判定其大小的数据对象,在 compile time 就可以被预先分配存储空间为此类数据对象,并且这样的分配策略被称为静态存储分配。
全部评论 (0)
还没有任何评论哟~
