您的位置:首页 > 大数据 > 人工智能

main之前和之后(可)执行哪些函数(操作)

2013-10-29 19:58 423 查看
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.csdn.net/topics/300103318#r_78088969
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: