main是C/C++的入口函数么?

main是C/C++的入口函数么?

我们都知道程序在进入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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注