问答题 [问题1] 代码段、数据段和bss段的大小是在什么时候确定的?
【正确答案】
【答案解析】在编译时确定。 试题四[分析] 本题考查的是任务的内存布局问题。一般来说,一个任务的内存布局分为五个部分;代码段、数据段、bss段、堆和栈。代码段主要存放操作系统和应用程序的指令;数据段主要存放操作系统和应用程序当中所有带有初始值的全局变量;bss段主要存放操作系统和应用程序当中所有未带初始值的全局变量;堆空间是动态分配的内存空间,在系统运行时,可以通过类似于malloc/free之类的函数来申请或释放一段连续的内存空间;栈空间主要保存运行上下文以及函数调用时的局部变量和形参。对于代码段、数据段和 bss段来说,它们的大小是固定的,在编译时即可确定。栈空间是由系统自动来维护的,而对于堆空间来说,为了提高存储管理的效率,减少开销,通常采用分区存储管理方法 (包括固定分区和可变分区)。