您的位置:首页 > 其它

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段)的长度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: