【发布时间】:2025-11-28 04:20:06
【问题描述】:
我开发了一个简单的C程序如下图..
int main()
{
return 0;
}
我使用 gcc v5.2.1 编译了程序。当我在下面的可执行文件上运行 Unix 命令“大小”时,它显示的大小..
文本 = 1131,数据 = 552,bss = 8
据我了解,数据部分保存已初始化的全局数据,而 BSS 保存未初始化的全局数据。虽然没有全局变量,为什么“数据”和“BSS”部分显示非零值?
【问题讨论】:
-
有很多运行时代码链接到您的程序,例如启动代码.
-
@FelixPalmen 对。知道这两个段中的数据到底是什么吗?
-
这在很大程度上取决于您的目标平台以及您的运行时在调用
main()之前必须执行的任务。例如,它必须设置agrv[]。大多数情况下,会涉及初始化循环,因为您未显式初始化的数据放在.bss中,因此必须设置为0,然后您的程序才能启动......等等。 pp.