exit()和return()的区别详解

来源:互联网 发布:交银数据混合519698 编辑:程序博客网 时间:2024/06/06 04:17

exit0):正常运行程序并退出程序;

exit1):非正常运行导致退出程序;

return():返回函数,若在主函数中,则会退出函数并返回一值。

详细说:

1. return返回函数值,是关键字; exit 是一个函数。

2. return是语言级别的,它表示了调用堆栈的返回;而 exit是系统调用

级别的,它表示了一个进程的结束。

3. return是函数的退出(返回)exit是进程的退出。

4. return C语言提供的,exit是操作系统提供的(或者函数库中给出

的)。

5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函

数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序

的一个状态返回给 OS,这个状态标识了应用程序的一些运行信息,这个信息和

机器和操作系统有关,一般是 0 为正常退出,  0 为非正常退出。

6. 非主函数中调用 return exit效果很明显,但是在 main函数中调用

return exit的现象就很模糊,多数情况下现象都是一致的。

exit0)与 exit1)对你的程序来说,没有区别。对使用你的程序的人或者

程序来说,区别可就大了。

一般来说,exit 0 可以告知你的程序的使用者:你的程序是正常结束的。如果

exit  0 值,那么你的程序的使用者通常会认为你的程序产生了一个错误。

 shell 为例,在 shell 中调用完你的程序之后,用 echo $? 命令就可以看

到你的程序的 exit 值。在 shell 脚本中,通常会根据上一个命令的 $? 值来

进行一些流程控制。

0 0