全局/静态变量初始化为0放在bss段还是data段?
转自此博客我们都知道:1)有初始化的全局变量,该全局变量存放在data段2)没有初始值的全局变量放在BSS段。实际上在arm-linux-gcc这个开发环境中,如果全局变量的初始值是0,编译器会将该全局变量放在BSS段。初始值是0的全局变量放在BSS段会有什么问题?如果少了text代码帮他初始化为0,这个全局变量将会成为随机值。而不是0。因此text段会有一段代码将BSS段初始化为0。如下图:..
·
转自此博客
我们都知道:
1)有初始化的全局变量,该全局变量存放在data段
2)没有初始值的全局变量放在BSS段。
实际上在arm-linux-gcc这个开发环境中,如果全局变量的初始值是0,编译器会将该全局变量放在BSS段。
初始值是0的全局变量放在BSS段会有什么问题?
如果少了text代码帮他初始化为0,这个全局变量将会成为随机值。而不是0。
因此text段会有一段代码将BSS段初始化为0。
如下图:
更多推荐
已为社区贡献1条内容
所有评论(0)