第六章 运行时数据结构

1。a.out:“assembler output(汇编程序输出)”的缩写形式。
2,段的概念:
(1)在UNIX中,段表示一个二进制相关的内容块。
命令:size test(可执行程序),返回文件中的三个段。

   text    data     bss     dec     hex filename
   1196     276     188    1660     67c test
(2)Inter x86架构:
地址空间被分成64K大小的区域,称之为段。

3,使自己确信:
(1)数据段保存在目标文件中。
(2)BSS段不保存在目标文件中(只是记录BSS段运行时所需要的大小)
(3)文本段是最容易受优化措施影响的段。

4,载入器只是取文件中欧冠你每个段的映像,并直接将它们放入内存中。

5,关于堆栈段:
运行时系统维护一个指针,通常称为sp,用于提示堆栈当前的顶部位置。
堆栈段的三个主要用途:
(1)堆栈为函数内部声明的局部变量提供存储空间。(auto变量)
(2)进行函数调用时,堆栈存储与此有关的一些维护性信息。
(3)堆栈也可以用作暂时存储区,如计算一个很长的算术表达式时,可以把部分结果压到堆栈中。
注:出了递归调用外,堆栈并非必需。
因为在编译时可以知道局部变量、参数和返回地址所需空间的固定大小,并可以将它们分配于BSS段。

6,static变量,保存在数据段中,而不是堆栈中。

你可能感兴趣的:(数据结构,编程,unix)