1、通过size命令查看,可以看到左侧未初始化数组变量的程序bss段大约就是4M大小,右侧初始化数组变量的程序data段大约是4M大小,从此也可以看出来未初始的全局变量存放在bss段,初始化的全局变量存放在data段中。 2、通过ls命令查看,分别可以看到两者的可执行文件的大小差距很大(分别为8328字节、4202648字节),未初始化的全...
区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于: l 全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中; l 而函数内的自动变量都在栈上分配空间。 l.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零); l 而.data却需要占用,其内容由程序...
区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于:全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自动变量都在栈上分配空间。.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零);而.data却需要占用,其内容由程序初始化,因此造成...
[转] .bss段和.data段的区别 PS:http://stackoverflow.com/questions/16557677/difference-between-data-section-and-the-bss-section-in-c The.bsssection is guaranteed to be all zeros when the program is loaded into memory. So any global data that is uninitialized, or initialized to zero is place...
但是在多文件链接的时候,可能在其他文件中会存在相同的弱符号但是类型可能会不同,所以当一个文件中被编译时,他的弱符号大小无法被确定,因为其他文件中也会存在弱符号,但是当最后链接到一起时,他的大小可以被确认,最终还是被放在了.bss段。 这里说一下c++的全局初始化变量,有的编译器会默认给他赋值为0,所以有了...
区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于: l 全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中; l 而函数内的自动变量都在栈上分配空间。 l.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零); ...
_DATA ENDS 区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于:全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自动变量都在栈上分配空间。.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零);而.data却需要占用,其内容由程序初始...
区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于: l 全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中; l 而函数内的自动变量都在栈上分配空间。 l.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零); ...
_DATA ENDS 区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于:全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自动变量都在栈上分配空间。.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零);而.data却需要占用,其内容由程序初始...