您的位置:首页 > 编程语言

数据段、代码段、栈区、堆区

2014-08-29 22:29 134 查看
汇编编译基础,C 必备知识原文地址:数据段、代码段、栈区、堆区作者:gyeve一个程序经过汇编之后生成:数据段、代码段、栈区、堆区。

如下图显示:



bss段:用来存放程序中未初始化全局变量的一块内存区域。bss:block start by symbol :静态内存分配

数据段:用来存放程序中初始化的全局变量的一块内存区域。包括可变的数据段和不可变的数据段
。const的全局变量存储于只读的数段
:静态内存分配

代码段 :通常用来存放执行代码的一块内存区域。只读

堆 :用于存放进程运行中被动态分配的内存段,它的大小并且不固定,可动态扩展。当进程调用malloc等分配内存时,新分配的内存被动态的添加到堆上(堆被扩大),当利用free等函数释放内存时,被释放的‘
内存从堆中剔除

栈:栈在进程运行时产生,一个进程有一个进程栈。栈用来存储程序临时存放的局部变量,即函数{}内定义的变量 不包括static
类型的。函数被调用时,他的形参也会被压栈。------------将栈看作一个寄存器交换临时数据的

内存区

批注:


.bss体现的一个占位符。
而data则为其分配空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: