|
发表于 2010-9-25 11:26:02
|
显示全部楼层
恕我眼拙, 不同版本之间没有差异啊, 有的只是初始化和未初始化的全局变量间的差异.
我的理解是, bss里面全是0, 未初始化的全局变量放这既省空间又不影响0的初值. 而如果初始化了的全局变量, 因为不一定为0, 显然应该放到data里. 至于有没有手动初始化为0, 多加判断就引入了过多的复杂性..
下面是google来的:
.data段是数据段。它用来存放初始化了的(initailized)全局变量(global)和初始化了的静态变量(static)。它是可读可写的。
.bss段是全局变量数据段。它用来存放未初始化的(uninitailized)全局变量(global)和未初始化的静态变量(static)。它也是可读可写的。bss是英文Block Started by Symbol的缩写。之所以把bss跟data分开来,是因为系统会为这些bss段的变量的初值清零。 |
|