C程序的函数在内存的布局.docVIP

  • 5
  • 0
  • 约1.06万字
  • 约 19页
  • 2019-04-05 发布于广东
  • 举报
C程序的函数在内存的布局 一个C程序一直以来都是由以下5个段(pieces)组成: 代码段(text segment):存放CPU执行的机器指令(machine instructions)。通常情况卜,代码 段是可共享的,使其可共享的目的是对于频繁被执行的程序,只需要在力存屮有一份拷贝即 可,比如文本编辑器(text editors), C编译器,shell等等。另外,代码段也通常是只读的, 使其只读的股因是防止一个程序意外地修改了它的指令(prevent a program from accidentally modifying its instructions)。 初始化数掘段/数掘段(initialized data segment/data segment):该段包含了在程呼屮明确被初始 化的变量。例如,一个不在任何函数内的C声明(C declaration) int maxcount = 99; 使得变量maxcount根据其初始值被存储到初始化数据段。 未初始化数据段/bss段(uninitialized data segment/bss segment):bss这个叫法是根据一个早期 的汇编运算符而来,这个汇编运算符标志着一个块的开始(stood for block started by symbol)。在程序开始执行之前,bss段的数据被kernel初始化为0或者空

文档评论(0)

1亿VIP精品文档

相关文档