Board logo

标题: 内存空间探秘 [打印本页]

作者: luoman    时间: 2010-8-10 09:06     标题: 内存空间探秘

内存空间探秘

一个程序一般分为3段:text段,data段,bss段
text段:就是放程序代码的,编译时确定,只读,
data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写
就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域
bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域
BSS段 在采用段式内存管理的架构中,BSS段bss segment)通常是指用来存放程序中未初始化全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS属于静态内存分配
数据段 在采用段式内存管理的架构中,数据段data segment)通常是指用来存放程序中已初始化全局变量的一块内存区域。数据段属于静态内存分配
代码段 在采用段式内存管理的架构中,代码段text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域属于只读。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
堆栈 堆栈又称堆栈(stack)在计算机科学中,是一种特殊的链表形式的数据结构,它的特殊之处在于只能允许在链表的一端(称为栈顶,英文为top)进行添加和删除操作。另外堆栈数据结构的实现也可以通过数组来完成。
严格来说堆是指Heap,程序运行时供程序员来支配的一段内存。而栈Stack,多指函数调用时候参数的相互传递存在的内存区域。
由于堆栈数据结构只允许在一端进行操作,因而按照先进后出(LIFO-Last In First Out)的原理工作。
堆栈数据结构支持两种基本操作:压栈(push)和弹栈(pop):
1.
压栈(入栈):将对象或者数据压入栈中,更新栈顶指针,使其指向最后入栈的对象或数据。

2.
弹栈(出栈):返回栈顶指向的对象或数据,并从栈中删除该对象或数据,更新栈顶


作者: luoman    时间: 2010-8-10 18:02

顶自己一个
作者: dsz0402    时间: 2010-8-26 21:15

好酷啊,很不错,支持
作者: xituosmile    时间: 2010-8-28 10:55

本帖最后由 yumuzi 于 2010-11-8 11:43 编辑

灰常不错,顶个~~
作者: andyking    时间: 2010-10-27 16:05

感谢楼主分享..
作者: baizvdk9zLl    时间: 2012-7-24 16:15

中仪在线www.yibiao.cn主要为仪表企业提供新闻咨询、市场分析、产品信息、技术资料、专家问答、人才招聘等服务,同时提供网站建设、网站推广、网上贸易工作等行业电子商务营销解决方案。

旗下网站有中缆在线www.dianlan.cn;中阀在线www.famen.cn;中国电气www.dianqi.cn




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0