在对问题“关于Unix中的bss段和数据段”的一个回答中,我看到了关于bss的解释如下:
引用: .bss是特殊的:.bss对象在目标文件中不占用任何空间,并且通过将所有未经明确初始化的符号分组在一起,它们可以一次性地清零。
但是当我在生成的代码的目标文件上使用size命令时:
我有以下的东西。
看到根据全局范围的未初始化数据成员增长。那么有人能证明这个说法吗?
引用: .bss是特殊的:.bss对象在目标文件中不占用任何空间,并且通过将所有未经明确初始化的符号分组在一起,它们可以一次性地清零。
但是当我在生成的代码的目标文件上使用size命令时:
#include <stdio.h>
int uninit_global_var;
int init_global_var=5;
int main()
{
int local_var;
return 0;
}
我有以下的东西。
text data bss dec hex filename
1231 280 12 1523 5f3 a.out
看到根据全局范围的未初始化数据成员增长。那么有人能证明这个说法吗?
void*
类型的参数。将这些char*
强制转换为void*
。 - Spikatrixvoid*
。实际上,在void*
和另一个指针类型之间的转换不需要显式的强制转换。 - Lundin