hello world!
分类: C/C++
2012-08-10 16:25:45
从历史上讲,C程序一直是由下面几部分组成:
1) 正文段:这是由CPU执行的机器指令部分。通常,正文段是可共享的,所以即使是频繁的执行的程序(如文本编辑器、C编译器和shell等)在存储器中也只需要有一个副本而已,另外,正文段常常是只读的,以防止程序由于意外而修改其自身的指令。
2) 初始化数据段:也称为数据段,它包含了程序中需要明确地赋初始值的变量。例如,C程序中出现在任何函数之外的声明,如:int maxcount=99
3) 非初始化数据段:通常将段称为bss段,在程序开始执行之前,内核将此段中的数据初始化为0或者空指针如:long sun[100]
4) 栈:自动变量,以及每次函数调用时所需保存的信息都存在此段中。每次调用函数时,其返回地址以及调用者的环境信息都存放在栈中。然后,最后被调用的函数在栈上为其自动和临时变量存储空间。
5) 堆:通常在堆中进行动态存储。