程序的存储结构主要分为 存储时和运行时两种结构,具体组成如下:
存储时结构
代码区(text):存放程序的二进制代码,此区域代码可共享,防止被修改,且为只读。
数据区(data):包含全局初始化数据区和静态数据区。这里存放了已经被初始化的全局变量、静态变量(包括全局静态变量和局部静态变量)以及常量数据,例如字符串常量。
未初始化数据区(bss):存放程序中未初始化的全局变量。
运行时结构
堆:程序运行时请求动态分配的内存来自内存池,即堆。
栈:用于存放局部变量、函数的参数、调用函数和被调用函数的联系。栈的数据对象增长方向为自顶向下,是自动管理的。
这些组件共同构成了程序的存储结构,使得程序在存储和运行时能够被计算机有效地管理和执行。