Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75948
  • 博文数量: 35
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-11 10:56
文章分类

全部博文(35)

文章存档

2016年(2)

2015年(33)

我的朋友

分类: LINUX

2015-03-30 14:36:48

 

.bss .data .text 区别  

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.                  弹栈(出栈):返回栈顶指向的对象或数据,并从栈中删除该对象或数据,更新栈顶

阅读(934) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~