main主函数执行完毕后,是否可能会再执行一段代码?

main主函数执行完毕后,是否可能会再执行一段代码?
为什么?

当然可以
看下面这个例子:

可以用_onexit 注册一个函数,它会在main 之后执行int fn1(void), fn2(void), fn3(void), fn4 (void);
void main( void )
{
String str("zhanglin");
_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;
}
The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-16
不会,没理由,就是这么规定的,一个MAIN{}是一个完整的函数,编译之后可以生成一个单独的可执行文件,这个可执行文件不包括MAIN{}以外的东西
第2个回答  2008-03-17
答案:可以,可以用_onexit 注册一个函数,它会在main 之后执行int fn1(void), fn2(void), fn3(void), fn4 (void);
void main( void )
{
String str("zhanglin");
_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;
}
The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.
第3个回答  2008-03-16
main函数结束就代表程序的结束怎么可能再执行一段代码?

main函数是通过调用其他函数而完成整个程序的!!!!!
第4个回答  2020-04-15
main主函数执行完毕后,为啥不能执行别的代码段呢??很奇怪的问题。
你只要想让它执行。写上去为啥不能执行呢?当然
对应的操作对象要分清楚。不能在submain操作的
对象肯定是不行的。这要看你这段代码涉及的内容了。
相似回答