c二进制文件大于源文件

Val*_*rai 1 c binary gcc

我有一个名为simple.c的ac源文件(文件大小为68字节),我使用gcc编译它.输出二进制文件大小为7151字节.

C源代码:

int main()
{
    int a = 10;
    int b = 34;
    int c = a + b;
    return c;
}
Run Code Online (Sandbox Code Playgroud)

我没有包含任何头文件.

我不知道,C二进制文件如何变得比源文件大.有人可以解释一下吗?

test@test-desktop:~/Desktop/c$ ls -l
total 4
-rw-rw-r-- 1 test test 68 Jul 15 15:04 simple.c
test@test-desktop:~/Desktop/c$ gcc simple.c 
test@test-desktop:~/Desktop/c$ ls -l
total 12
-rwxrwxr-x 1 test test 7151 Jul 15 15:04 a.out
-rw-rw-r-- 1 test test   68 Jul 15 15:04 simple.c
Run Code Online (Sandbox Code Playgroud)

以上是终端输出.

Dev*_*lar 7

即使不包括任何东西,你也有开销.有代码之前运行main()(这是建立stdin,stdout以及stderr,信号处理表格等等),和函数返回后运行的代码(如检查与登记东西atexit()和类似的东西).这称为C运行时,传统上位于crt0.o其中,链接到任何可执行文件.