C程序的存储空间布局
2013-05-02 23:35
169 查看
1.C程序的组成部分:
1)程序正文/机器指令:可共享
2)初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中已赋初值的
如: int maxcount = 99;
3)非初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中未赋初值的,程序开始执行之前,内核会将该数据段中的变量赋值为0或空指针(即我们所谓的全局变量的自动初始化)
如: long num[100];
4)栈:存储自动变量以及函数调用时需要保存的信息,如函数返回地址、调用时某些寄存器的值等
5)堆:用户动态分配,程序员负责内存的分配和回收,该部分位于非初始化数据段和栈之间
6)存放在程序文件中的只有正文段和初始化数据段,未初始化数据段不存储,因为内核在开始执行程序之前会将他们都设置为0。
7)linux size命令报告一个程序的正文段、初始化数据段、未初始化数据段(被称为bss段)的长度
1)程序正文/机器指令:可共享
2)初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中已赋初值的
如: int maxcount = 99;
3)非初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中未赋初值的,程序开始执行之前,内核会将该数据段中的变量赋值为0或空指针(即我们所谓的全局变量的自动初始化)
如: long num[100];
4)栈:存储自动变量以及函数调用时需要保存的信息,如函数返回地址、调用时某些寄存器的值等
5)堆:用户动态分配,程序员负责内存的分配和回收,该部分位于非初始化数据段和栈之间
6)存放在程序文件中的只有正文段和初始化数据段,未初始化数据段不存储,因为内核在开始执行程序之前会将他们都设置为0。
7)linux size命令报告一个程序的正文段、初始化数据段、未初始化数据段(被称为bss段)的长度
相关文章推荐
- C程序的存储空间布局
- C程序存储空间布局
- Linux size命令和C程序的存储空间布局
- C程序的存储空间布局
- C程序的存储空间布局
- Linux下C程序的存储空间布局
- C程序的存储空间布局
- 进程环境之C程序的存储空间布局
- C 程序的存储空间布局
- 程序的存储空间布局/堆与栈 - [UNIX/Linux平台]
- C程序的存储空间布局
- Linux中C程序的存储空间布局 & C++的五大存储空间
- C++程序的存储空间布局
- Linux下C程序的存储空间布局
- 一个典型的C程序存储空间布局
- C程序存储空间布局
- 7.6 进程环境_C程序的存储空间布局
- C程序存储空间布局(一)——各数据段的内存位置
- C程序的存储空间布局
- C程序存储空间布局及变量类型比较