分段内存模型:将内存划分为几个独立的区域,每个区域称为段,通过段寄存器中的指针来引用。每个段都被用来保存某种特殊的数据。
- Data segment: 数据段,主要用来保存声明的变量、常量等等。用.data和.bss表示。
- Code segment: 代码段,主要用来保存指令代码。用.text表示。
- Stack segment: 栈段,主要用来保存程序执行期间函数的调用及其相关的数据,例如局部变量等。
补充两个术语:
-
Fixed Area: 这指的是一个固定的内存区域,它的大小在程序运行时是不变的。
-
Zero-Filled: 这表示一个内存区域在被分配之后会被自动填充为零。在.bss段中,程序员可以声明未初始化的静态变量。这些变量在程序开始执行之前并不占用实际的内存空间,但它们会被内存分配器标记为需要一定大小的空间。当程序开始执行时,这些未初始化的变量会被自动初始化为零值,因此.bss段也被称为零填充段。这种自动初始化可以确保程序在使用这些变量之前,它们已经具有可预测的初始值(零值)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!