可执行文件的大小是多少?

3

我写了一个非常简单的代码,用汇编语言和C语言分别实现了将两个整数相加并将结果保存在另一个变量中。使用汇编语言的代码只有617个字节,但使用C语言的代码却有25k个字节!为什么会有如此巨大的差别呢? 另外,我该如何查看我所写的C代码的汇编符号指令呢?


1
实际上,我之前读过一篇非常棒的帖子,正好是关于同样的话题:http://blog.ksplice.com/2010/03/libc-free-world/. 希望对以后再次阅读这篇内容的人有所帮助 :) - susmits
1个回答

4
高级语言有一定的开销。而在汇编语言中,你拥有的就是你所说的。
在这种情况下,你看到的开销很可能是标准组件的静态绑定,比如 printf。很可能是一个包含语句添加了这些内容。
如果你想查看输出结果,你需要一个反汇编器。 这里NASM 反汇编器的文档,如果你想查看其中一个。
你可以通过不包含任何内容并以类似于汇编语言的方式实现功能来避免部分开销。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接