通过查阅资料,我做了以下梳理。
- return返回函数值,是关键字; exit 是一个函数。
- return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
- return是函数的退出(返回);exit是进程的退出。
- return用于结束一个函数的执行,将函数的执行信息传出给其他调用函数使用,这种情况下只能使用return;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS或其父进程,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出, 非0 为非正常退出。
- 在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。
- return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。exit是一个库函数,exit(1)表示发生错误后退出程 序,exit(0)表示正常退出。在stdlib.h中exit函数是这样子定义的:void exit(int status)。这个系统调用是用来终止一个进程的,无论在程序中的什么位置,只要执行exit,进程就会从终止进程的运行。讲到exit这个系统调用, 就要提及另外一个系统调用,_exit,_exit()函数位于unistd.h中,相比于exit(),_exit()函数的功能最为简单,直接终止进 程的运行,释放其所使用的内存空间,并销毁在内存中的数据结构,而exit()在于在进程退出之前要检查文件的状态,将文件缓冲区中的内容写回文件。
- exit是直接在操作系统级别退出进程,exit后面跟个整形数(一般用的宏),通常用0,表示退出程序,然后跳到操作系统,它不受函数返回值限制。而return必须是对函数操作数的返回。
总结一下,他们的区别:
exit(0):正常运行程序并退出程序;
return():返回函数。如果它在main函数中,它将退出函数并返回一个值。
谢谢,咱们下回在见!
标签:调用,return,函数,区别,进程,exit,退出 来源: https://blog.csdn.net/joe_zxq21/article/details/121756524
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。