为什么可执行文件(.exe文件)的大小大于编译的.C文件?

时间:2013-09-05 19:22:38

标签: c size

出于好奇,我想知道为什么我编译的.C文件(大约2-5 kb)的大小比我的可执行文件(.exe)文件(130-200 kb)小?

3 个答案:

答案 0 :(得分:3)

您的编译器源文件只是实际源文件中生成的代码而不是其他内容。可执行文件已与其他目标文件和库链接,需要所有外部函数和变量。当然,这会使可执行文件变得更大,因为它包含更多代码。

答案 1 :(得分:2)

可能有很多原因:

  • 编译器可以静态链接依赖库,它基本上将该机器代码复制到生成的可执行文件中
  • 汇编通常会占用更多的源代码空间 - 可以将一行代码编译为多行汇编(将数据移入/移出寄存器等)。

答案 2 :(得分:2)

来自here

  

DJGPP程序需要捆绑各种各样的pmode驱动程序   通常通过rmode中的BIOS完成的事情。像   内存管理,磁盘访问,控制台访问,硬件访问等   从本质上讲,DJGPP在您的可执行文件中嵌入了一个迷你操作系统!