return与exit()

1.return是C语言提供的,exit()是操作系统提供的(或者函数库中给出的)。exit()是一个库函数,通常情况:exit(0)表示程序正常,exit(1)和exit(-1)表示程序异常退出,exit(2)表示表示系统找不到指定的文件。在整个程序中,只要调用exit()就结束(当前进程或者在main()时候为整个程序)。在stdlib.h中exit()函数是这样子定义的:void exit(int status)。这个系统调用是用来终止一个进程的,无论在程序中的什么位置,只要执行exit,进程就会从终止进程的运行。
exit(0):正常运行程序并退出程序;

exit(!0):非正常运行导致退出程序;

return:返回函数,若在主函数中,则会退出函数并返回一值。
2.return用于结束一个函数的执行,将函数的执行信息传出给其他调用函数使用;exit()函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS或其父进程,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是0为正常退出, 非0为非正常退出,理论上exit()可以返回小于256的任何整数。
3. return返回函数值并退出函数,是关键字;exit()是一个函数。

4.return是语言级别的,它表示了调用堆栈的返回;return是当前函数返回,当然如果是在主函数main(), 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时。如果有时要检测上个进程是否正常退出。就要用到上个进程的返回值,依次类推。而exit()是系统调用级别的,它表示了一个进程的结束。

5. return是函数的退出(返回);exit函数是进程的退出,它退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。

6.非主函数中调用return和exit()效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。

C 标准规定,主函数返回时,如果其类型与 int 兼容,则此返回的效果应该是 exit(返回值) 。看起来,main() 函数可以选择以 return 结束,也可以选择使用 exit() 结束,两者的区别不大。但是事实上 return 和直接调用 exit() 的效果并不完全一样。如果使用 return,则 main() 函数的栈帧将回收并失效。
--------------------- 

转自https://blog.csdn.net/wumenglu1018/article/details/53300765

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值