转载自https://blog.csdn.net/firefly_2002/article/details/7960595函数
1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操做系统;而return 是退出当前函数,返回函数值,把控制权交给调用函数。
2. exit是系统调用级别,它表示一个进程的结束;而return 是语言级别的,它表示调用堆栈的返回。
3. 在main函数结束时,会隐式地调用exit函数,因此通常程序执行到main()结尾时,则结束主进程。exit将删除进程使用的内存空间,同时把错误信息返回给父进程。
4. void exit(int status); 通常status为0,表示正常退出,非0表示非正常退出。spa
一、exit函数和return函数的主要区别是:操作系统
1)exit用于在程序运行的过程当中随时结束程序,其参数是返回给OS的。也能够这么讲:exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。.net
main函数结束时也会隐式地调用exit函数,exit函数运行时首先会执行由atexit()函数登记的函数,而后会作一些自身的清理工做,同时刷新全部输出流、关闭全部打开的流而且关闭经过标准I/O函数tmpfile()建立的临时文件。blog
exit是系统调用级别的,它表示了一个进程的结束,它将删除进程使用的内存空间,同时把错误信息返回父进程。一般状况:exit(0)表示程序正常, exit(1)和exit(-1)表示程序异常退出,exit(2)表示系统找不到指定的文件。在整个程序中,只要调用exit就结束。进程
2)return是语言级别的,它表示了调用堆栈的返回;return是返回函数值并退出函数,一般0为正常退出,非0为非正常退出,请注意,若是是在主函数main, 天然也就结束当前进程了(也就是说,在main()里面,你能够用return n,也可以直接用exit(n)来作),若是不是在main函数中,那就是退回上一层调用。在多个进程时,若是有时要检测上个进程是否正常退出,就要用到上个进程的返回值。内存