在初始化时将内存分配给“未初始化的静态变量”?

时间:2015-05-01 15:25:35

标签: c memory static-variables address-space

未初始化的静态变量始终在BSS中分配。而.bss段是静态的,因为内存是在编译时分配的。 根据许多书籍“可执行文件中只有初始化为非零值的变量占用空间”。 程序加载到内存后,未初始化的静态变量仍为.bss。

**函数初始化时会发生什么? ** 会被移到其他地方吗?

2 个答案:

答案 0 :(得分:2)

引用的其余部分:

“在可执行文件中,只有初始化为非零值的变量占用空间。”

即。当可执行文件加载到内存中时,会分配所需的空间

答案 1 :(得分:1)

初始化时,内存被分配给“未初始化的静态变量”,并将其移动到.data部分。

代码文件:

os

执行:

import os
print os.environ.get('PWD', '')