我们都知道程序在进入main函数之前会进行全局变量的初始化,接受main函数的两个参数,完成堆栈的初始化等操作。
程序的启动过程看起来更像是这样的(伪代码)
那么在main函数返回之后是不是意味着程序的结束呢?
这段代码展示了在main函数返回之后,程序并没有结束:
#include <stdio.h> #include <stdlib.h> void foo(void) { printf("bye!\n"); } int main() { atexit(&foo); printf("end of main\n"); return 0; }
运行结果如下:
更详细的内容参见《程序员的自我修养-链接,装载与库》P318
main是C/C++的入口函数么?,布布扣,bubuko.com
原文:http://blog.csdn.net/jack_wong2010/article/details/22394179