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

return与exit()相关推荐

  1. 关于return和exit

    关于return和exit 在子进程退出的时候有两种方式,exit和exec族函数,不能使用return,为什么不能用return呢,exit改成return 会出现父子进程又各自重复开始进行. 1. ...

  2. 【VS开发】Return与Exit的区别

    1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统:而return 是退出当前函数,返回函数值,把控制权交给调用函数. 2. exit是系统调用级别,它表示一个进程的结 ...

  3. fork和vfork,return和exit的理解

    fork和vfork的差别: 1.fork是创建一个子进程,并把父进程的内存数据copy到子进程中. vfork是创建一个子进程,并和父进程的内存数据share一起. 2.vfork是这样的工作的: ...

  4. oracle 存储过程循环体中的return和exit区别:

    oracle 存储过程循环体中的return和exit区别: (1) return 跳出整个循环,终止该循环, 后面的不再执行.     相当于 Java 中的break; (2)  exit 跳出本 ...

  5. php 终止程序的方法——return、exit()、die()

    php中终止程序的运行有三种方式: return,主脚本程序中使用 exit(),脚本中使用 die(), 脚本中使用 三者所在的脚本文件他们之后的代码都不会执行了.php开发模式下想直接看到变量的值 ...

  6. C语言再学习 -- 关键字return和exit ()函数

    终于到了最后一个关键字 return 了.感觉时间过的飞快,转眼间又是一年,如果时间可以 return 就好了. 一.return 介绍 参看:C语言中return 用法 1.含义: return 表 ...

  7. ld return 1 exit result的可能出错位置与解决方法

    分享一下写代码的经验,在CODE:BLOCKS和QT中经常碰到问题,最大的问题莫过于 ld return 1 exit result ,这最让人头疼.因为它又不告诉你哪里错了,网上也很少有相同的案例, ...

  8. Shell脚本中的return,exit 0,以及 父进程获取子进程的变量

    1 Shell脚本中的return,exit 0 shell脚本中,一般在脚本的函数里面使用return语句,函数中使用return语句后,表示函数执行完毕,函数中return语句后面的代码将不再执行 ...

  9. C语言main函数、return、exit函数

    main函数 说到return,有必要提及主函数的定义.很多人甚至市面上的一些书籍,都使用了void main( )这一形式 ,其实这是错误的. C/C++ 中从来没有定义过void main( ) ...

最新文章

  1. python linecache模块读取文件用法详解
  2. sqlserver2008导出mysql_SQLserver 2008将数据导出到Sql脚本文件的方法
  3. LeetCode 1722. 执行交换操作后的最小汉明距离(并查集)
  4. linux环境变量设置和修改
  5. NoSQL--Redis 2.4--Set
  6. Interface Project
  7. 详解电镀废水各种工艺
  8. FPGA电梯控制系统
  9. c语言有坐标判断正方形,正方形
  10. 网站加速教程--提升性能的同时节约10倍成本
  11. java happen-before_Java happen-before规则
  12. Nginx安装成windows server 2016机器的服务
  13. 堆和栈的区别 之 数据结构和内存
  14. kali搭建Linux版本的小皮面板
  15. 小灰整理了一套Java学习路线图,面试和实战都能用得上!
  16. Display port
  17. 25-30K ☀️|网络工程师职业技巧与经典面试题✨
  18. Spring Cloud- Ribbon设计原理
  19. C4D+OC渲染线框
  20. 液压断路器-BA系列设备用断路器规格型号说明

热门文章

  1. 未来几年自动驾驶预测(上)
  2. C++ 中multiset 的使用
  3. TypeError: to_bytes() missing required argument ‘byteorder‘ (pos 2)
  4. Android RecyclerView(和SnapHelper) 实现类似ViewPager的效果
  5. Axure 8 window 下载,破解
  6. github上的图片当网络图片使用
  7. Error: module pages/utils/util is not defined
  8. 026_PPT知识汇总
  9. Android 悬浮窗口
  10. C#中类的继承 override virtual new的作用以及代码分析