数据段、代码段、栈区、堆区
2014-08-29 22:29
134 查看
汇编编译基础,C 必备知识原文地址:数据段、代码段、栈区、堆区作者:gyeve一个程序经过汇编之后生成:数据段、代码段、栈区、堆区。
如下图显示:
bss段:用来存放程序中未初始化全局变量的一块内存区域。bss:block start by symbol :静态内存分配
数据段:用来存放程序中初始化的全局变量的一块内存区域。包括可变的数据段和不可变的数据段
。const的全局变量存储于只读的数段
:静态内存分配
代码段 :通常用来存放执行代码的一块内存区域。只读
堆 :用于存放进程运行中被动态分配的内存段,它的大小并且不固定,可动态扩展。当进程调用malloc等分配内存时,新分配的内存被动态的添加到堆上(堆被扩大),当利用free等函数释放内存时,被释放的‘
内存从堆中剔除
栈:栈在进程运行时产生,一个进程有一个进程栈。栈用来存储程序临时存放的局部变量,即函数{}内定义的变量 不包括static
类型的。函数被调用时,他的形参也会被压栈。------------将栈看作一个寄存器交换临时数据的
内存区
批注:
.bss体现的一个占位符。
而data则为其分配空间
如下图显示:
bss段:用来存放程序中未初始化全局变量的一块内存区域。bss:block start by symbol :静态内存分配
数据段:用来存放程序中初始化的全局变量的一块内存区域。包括可变的数据段和不可变的数据段
。const的全局变量存储于只读的数段
:静态内存分配
代码段 :通常用来存放执行代码的一块内存区域。只读
堆 :用于存放进程运行中被动态分配的内存段,它的大小并且不固定,可动态扩展。当进程调用malloc等分配内存时,新分配的内存被动态的添加到堆上(堆被扩大),当利用free等函数释放内存时,被释放的‘
内存从堆中剔除
栈:栈在进程运行时产生,一个进程有一个进程栈。栈用来存储程序临时存放的局部变量,即函数{}内定义的变量 不包括static
类型的。函数被调用时,他的形参也会被压栈。------------将栈看作一个寄存器交换临时数据的
内存区
批注:
.bss体现的一个占位符。
而data则为其分配空间
相关文章推荐
- BSS段、数据段、代码段、堆与栈
- 进程的虚拟地址空间,堆栈、堆、数据段、代码段(转)
- 数据段,代码段,BBS,堆,栈
- BSS段、数据段、代码段、堆与栈
- 再次理解保护模式特权级——CPL、DPL、RPL、数据段、堆栈段、一致代码段、非一致代码段
- BSS段,数据段,代码段,堆和栈
- BSS段、数据段、代码段、堆与栈
- BSS段,数据段,代码段,堆内存和栈
- BSS段、数据段、代码段
- 【汇编】代码段、数据段、堆栈段及向上增长和向下增长
- 浅析栈区和堆区内存分配的区别
- elf 可执行文件 中代码段和数据段间0x1000地址差异
- 代码段、数据段、堆栈段、数据段辨析
- BSS段、数据段、代码段、堆与栈
- Linux_数据段、代码段、堆栈段、BSS段的区别
- C内存模型-BSS段、数据段、代码段、堆与栈
- C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)
- 为什么代码和数据要分开存放成代码段和数据段
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段,代码段,bss段