return和exit的区别总结
本文对return和exit的区别进行总结,以避免在后续的项目开发中遇到相关问题。
return
return的特点如下:
- 语言级别的,表示调用堆栈的返回;
- 当前函数的返回。如果是main函数,则结束当前进程(同exit);如果不是,则退回上一层调用。
exit
exit的特点如下:
- 系统调用级别 ,表示一个进程的结束;
- 会进行一些系统清理工作,如:删除当前进程使用的内存空间;
- 把结果返回给父进程;
- mian函数结束时,也会隐式地调用exit函数。
测试代码
在非mian的普通函数中,不能使用exit来返回,否则会出现非预期的结果。
示例代码-1
:
int func_1()
{
printf("I am func_1\n");
return (0);
//exit (0);
}
int test()
{
func_1();
printf("I am test\n");
return (0);
}
/*main*/
int main(int argc, char *argv[])
{
test();
return 0;
}
运行结果:
示例代码-2
:
int func_1()
{
printf("I am func_1\n");
//return (0);
exit (0);
}
int test()
{
func_1();
printf("I am test\n");
return (0);
}
/*main*/
int main(int argc, char *argv[])
{
test();
return 0;
}
运行结果:
参考
本文参考了如下文章,以此表示感谢。
1.C语言中exit()与return的区别
文中如有错误,欢迎批评指正,万分感谢。