为什么一个什么都不做的程序反汇编出来会那么大?

只是一个main函数而已
2025-05-18 22:45:43
推荐回答(4个)
回答(1):

一个是windows下PE格式文件本来就很大,有PE头、text节、data节、import表、export表。。。
另一个是程序不是一上来就调用main函数,如果你完全安装了VC,可以在安装目录下搜索下mainCRTStartup函数,程序开始是调它的,里面要完成很多功能,像初始化堆、初始化io、设置全局符号(像_osver、_errno之类的)、初始化全局变量、分析命令行、初始化异常处理,然后才调用main函数。
三是如果静态链接C运行时库,那么运行时库的所有代码都会写到程序里。
四是如果用debug方式编译,程序的调试符号也会占用很多空间。

回答(2):

因为你写的代码只是PE文件的一部分,一般放在.text段
除了这个还有好多其他结构比如PE头,数据段等等
还有,即使你不写代码编译器也会插入很多代码的你看到的main根本不是PE真正开始执行的地方....路还长楼主加油

回答(3):

如果用“汇编语言”来编程,就没有这个问题了。

回答(4):

呵呵,这就是汇编语言所具有的绝对优势!