C程序的存储空间布局
来源:互联网 发布:卖家淘宝客教程 编辑:程序博客网 时间:2024/05/18 20:12
1.C程序的组成部分:
1)程序正文/机器指令:可共享
2)初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中已赋初值的
如: int maxcount = 99;
3)非初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中未赋初值的,程序开始执行之前,内核会将该数据段中的变量赋值为0或空指针(即我们所谓的全局变量的自动初始化)
如: long num[100];
4)栈:存储自动变量以及函数调用时需要保存的信息,如函数返回地址、调用时某些寄存器的值等
5)堆:用户动态分配,程序员负责内存的分配和回收,该部分位于非初始化数据段和栈之间
2.C程序组成部分的典型安排方式:(该图截自《UNIX环境高级编程(第二版)》)
存放在程序文件中的只有正文段和初始化数据段,未初始化数据段不存储,因为内核在开始执行程序之前会将他们都设置为0。
linux size命令报告一个程序的正文段、初始化数据段、未初始化数据段(被称为bss段)的长度
1)程序正文/机器指令:可共享
2)初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中已赋初值的
如: int maxcount = 99;
3)非初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中未赋初值的,程序开始执行之前,内核会将该数据段中的变量赋值为0或空指针(即我们所谓的全局变量的自动初始化)
如: long num[100];
4)栈:存储自动变量以及函数调用时需要保存的信息,如函数返回地址、调用时某些寄存器的值等
5)堆:用户动态分配,程序员负责内存的分配和回收,该部分位于非初始化数据段和栈之间
2.C程序组成部分的典型安排方式:(该图截自《UNIX环境高级编程(第二版)》)
存放在程序文件中的只有正文段和初始化数据段,未初始化数据段不存储,因为内核在开始执行程序之前会将他们都设置为0。
linux size命令报告一个程序的正文段、初始化数据段、未初始化数据段(被称为bss段)的长度
- c程序的存储空间布局
- C程序的存储空间布局
- C 程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C 程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C 程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- C程序存储空间布局
- Jquery插件的使用--AutoComplete
- 数据库连接池DBCP浅析
- C语言细节
- vim列模式
- 实现自适应高度的 UITableViewCell 或 UILabel
- C程序的存储空间布局
- MD5简单加密
- C程序的环境变量列表
- Tor源码分析四 -- 客户端执行流程(初入主循环)
- 各个框架的优缺点
- 异步FIFO的FPGA实现
- linux进程的启动和终止
- 印度智能机市场 手机大佬们抢夺的下一站
- xlt模板解决非空和取属性信息