蓝山帝景
准确地说是编译器为可执行文件加上了一个启动例程,ELF头部的入口地址就指向该启动例程,然后在启动例程中有下面一句:80482fc: e8 c3 ff ff ff call 80482c4 <__libc_start_main@plt>通过它调用C库的_libc_start_main,再调用我们的main由于main函数是被启动例程调用的,所以从main函数return时仍返回到启动例程中,main函数的返回值被启动例程得到,如果将启动例程表示成等价的C代码(实际上启动例程一般是直接用汇编写的),则它调用main函数的形式是:exit(main(argc, argv));