1

考虑以下程序:

#include <stdio.h>

int main(void)
{
    return 0;
}

当我运行以下命令时:

gcc memory-layout.c -o 内存布局    
大小内存布局

我得到的输出为:

文本数据 bss dec 十六进制文件名    
960 248 8 1216 4c0 内存布局

由于文本区域包含程序的可执行指令,为什么输出显示文本区域的大小为 960,据我所知,这相对于指令的大小来说太大了。

4

1 回答 1

3

原因可能是因为程序的实际启动并不是真正的main函数,而是在链接阶段添加的一段代码。此代码在调用您的函数之前设置库、清除BSS段和其他初始化main。还有一些代码可以确保在您从main.

于 2012-06-26T13:24:54.243 回答