转自此博客


我们都知道:

1)有初始化的全局变量,该全局变量存放在data段

2)没有初始值的全局变量放在BSS段。

实际上在arm-linux-gcc这个开发环境中,如果全局变量的初始值是0,编译器会将该全局变量放在BSS段

初始值是0的全局变量放在BSS段会有什么问题?

如果少了text代码帮他初始化为0,这个全局变量将会成为随机值。而不是0。

因此text段会有一段代码将BSS段初始化为0

如下图:

在这里插入图片描述

Logo

更多推荐