main函数之后可以执行其他的函数吗?可以的。请看:
#include <stdlib.h>
#include <stdio.h>
/* Prototypes */
int fn1(void), fn2(void), fn3(void), fn4 (void);
void main( void )
{
_onexit( fn1 );
_onexit( fn2 );
_onexit( fn3 );
_onexit( fn4 );
printf( "This is executed first.\n" );
}
int fn1()
{
printf( "next.\n" );
return 0;
}
int fn2()
{
printf( "executed " );
return 0;
}
int fn3()
{
printf( "is " );
return 0;
}
int fn4()
{
printf( "This " );
return 0;
}
Output
This is executed first.
This is executed next.
//thanks:http://technet.microsoft.com/zh-cn/library/aa298513
main之前了?其实也可以:
main函数执行之前,主要就是初始化系统相关资源:
1.设置栈指针
2.初始化static静态和global全局变量,即data段的内容
3.将未初始化部分的赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容
4.运行全局构造器,估计是C++中构造函数之类的
5.将main函数的参数,argc,argv等传递给main函数,然后才真正运行main
//thanks:http://blog.163.com/getlee@126/blog/static/11695187120095291234914/
http://bbs.youkuaiyun.com/topics/300103318#r_78088969