Linux中C程序的存储空间布局 & C++的五大存储空间
来源:互联网 发布:mac实用软件推荐 编辑:程序博客网 时间:2024/06/06 23:54
Linux中C程序的存储空间布局
可以从《APUE》上面摘得下图所示,即为Linux中C程序的存储空间布局情况。从低地址到高地址依次分为五大部分
1.正文段。即为代码段,它存储的是CPU执行的机器指令,这部分是共享的,即存储其中只有正文段的一个副本。另外,正文段一般都是只读的,防止程序意外修改其指令。
2.初始化数据段(数据段)。这段存储空间主要存放的是全局作用域中明确赋初值了的变量。
3.未初始化数据段(BSS段)。这段存储空间主要存放的是全局作用域中没有明确赋初值的变量,在程序开始执行之前,内核将这段中的数据初始化为0或者空指针。
4.堆(heap)。堆通常用于动态存储分配,是从低地址往高地址方向增长。
5.栈。局部变量以及每次函数调用时所需要保存的信息存放在栈区,每次函数调用都会新建一个新的栈帧,因此,每个函数调用的过程都是单独,不会互相影响,除了static变量之外。栈是从高地址向低地址方向增长。
我们可以通过一个实例来深入了解一下:
0 0
- Linux中C程序的存储空间布局 & C++的五大存储空间
- linux C程序的存储空间布局
- Linux下C程序的存储空间布局
- 【Linux编程】C程序的存储空间布局
- Linux下C程序的存储空间布局
- Linux下C程序的存储空间布局
- Linux下C程序的存储空间布局
- c程序的存储空间布局
- C程序的存储空间布局
- C 程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C 程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- zoj3210 A Stack or A Queue?
- 《零基础学Python(第二版)》(四)
- Andoid Sqlite 增查
- Visual Stdio VS 错误 error : 0xC00000FD: Stack overflow. 更改堆栈空间解决栈溢出问题
- 小白学开发(iOS)OC_成员变量的作用域(2015-07-27)
- Linux中C程序的存储空间布局 & C++的五大存储空间
- Quartz2D-02.利用Quartz画基本形状
- HTML5中表单验证的8种方法
- Android原生下拉刷新SwipeRefreshLayout实践
- POJ 2594 — Treasure Exploration 最小路径覆盖
- 微机原理实验 lab8000 键盘数码管显示测试
- 描写生活美好的句子大全
- linux 查看系统版本及硬件信息
- 数据库前缀索引