C++ exit 与 return 浅析
【摘要】
本文从代码形式。经常使用方式,相关概念,调用关系和比較分析,这5个维度浅析 exit 与 return 在C++的同样点与差别。
【常见形式】
exit(0): 正常执行程序并退出程序。
exit(1): 非正常执行导致退出程序;
return( ):返回函数,若在主函数中,则会退出函数并返回一值。
【相关概念】
- return 语句可被用来使正在执行分支程序返回到调用它方法。表示中止当前函数的执行。并将操作权返回给调用者,假设是在main函数中。表示将操作权返回给操作系统。
假设符合某个条件要退出的话。能够用return返回,否则能够不写这句代码的,当程序运行到“}”时会自己主动返回,这个问题事实上你自己到机器上试一下就知道了。
只是作为一个良好的编程习惯,每一个函数都有返回语句倒是对的,这样更有可读性,并利于程序的维护
!return 指令一个是返回一个指定数据给主调函数,另外的一个作用就是 结束 所在函数的运行,return 没必要要返回一个值。
- exit()函数用于在程序执行的过程中随时结束程序,exit的參数state是返回给操作系统。返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。exit函数执行时首先会执行由atexit()函数登记的函数。然后会做一些自身的清理工作,同一时候刷新 全部输出流、关闭全部打开的流而且关闭通过标准I/O函数tmpfile()创建的暂时文件。
【另】
每一个进程都会有一个返回值的。进程開始时是由系统的一个启动函数掉用了main函数的:
int nMainRetVal = main();
当从main函数退出后。启动函数便调用exit函数,而且把nMainRetVa传递给它。所以。不论什么时候都会调用exit函数的,正常情况下。main函数不会调用exit函数的,而是由return 0; 返回值给nMainRetVal的,exit再接收这个值作为參数的。所以,正常情况下是以exit(0)退出的。假设。你程序发生异常,你能够在main函数中调用exit(1),强制退出程序,强制终止进程。非0表示不正常退出。
【比較分析】
1、return返回函数值,是keyword;exit是一个函数。
2、return是语言级别的。它表示了调用堆栈的返回;而exit是系统调用级别的。它表示了一个进程的结束。
3、return是函数的退出(返回);exit是进程的退出。
4、return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。
5、return用于结束一个函数的运行,将函数的运行信息传出个其它调用函数使用;exit函数是退出应用程序。删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,通常是0为正常退出。非0为非正常退出。
6、非主函数中调用return和exit效果非常明显。可是在main函数中调用return和exit的现象就非常模糊。多数情况下现象都是一致的。
C++ exit 与 return 浅析的更多相关文章
- Oracle循环中的EXIT、RETURN、CONTINUE解密
有时候编写Oracle中用游标等信息去循环处理逻辑的时候,对EXIT.RETURN.CONTINUE很容易搞混淆,网上搜了资料也不是很清楚,所以本人自己写了一小段代码测试了这三种用法.案例代码如下: ...
- c语言exit和return区别,在fork和vfork中使用
转自c语言exit和return区别,在fork和vfork中使用 exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: ...
- C语言中exit()与return的区别
整理自exit函数和return函数 1.exit函数和return函数的主要区别是: 1)exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的.main函数结束时也会隐式地调用e ...
- exit与return区别
1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统:而return 是退出当前函数,返回函数值,把控制权交给调用函数.2. exit是系统调用级别,它表示一个进程的结束 ...
- 引用 exit、return、_exit、_Exit这几个函数的区别
引用 exit.return._exit._Exit这几个函数的区别 一.exit函数和return函数的主要区别是: exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的.也可以这么讲: ...
- php exit、return、break、continue之间的差别,具体介绍
相信大家在php开发中有几个经常使用的停止程序和循环的keyword的误区( exit.return.break.continue) exit 退出全部脚本,是个函数 return 语言结构的使用方法 ...
- 【Linux】循环控制及状态返回值break、continue、exit、return
一.break.continue.exit.return的区别和对比 break n :如果省略n,则表示跳出整个循环,n表示跳出循环的层数 continue n:如果省略n,则表示跳过本次循 ...
- exit和return
函数名: exit() 所在头文件:stdlib.h(如果是”VC6.0“的话头文件为:windows.h) 功 能: 关闭所有文件,终止正在执行的进程. exit(1)表示异常退出.这个1是返回给操 ...
- PHP中die()、exit()、return的区别
1.die()是exit()的别名函数,用法与exit()完全相同,php手册上的说法是,“使用这种别名通常不是个好主意,因为这种别名可能会被完全废弃或更名,导致脚本难以移植到新版本的 PHP 上.” ...
随机推荐
- PCB 奥宝LDI 输出正负片转换关系
今天继续对P2 奥宝LDI改造,在文件输出的时候遇到了一个正负片转换问题,研究了半天一直没有得到解决, 回来后前前后后整理今天参数输出与输出的关系,最终还梳理清楚了, 今天小结:一项技术只要用心去研究 ...
- Django day08 多表操作 (二) 添加表记录
一: 一对多 1. 一对多新增 两种方式: publish = 对象 publish_id = id 1. publish_id 和 publish 的区别就是: 1)publish_id 可 ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'admin' for key 'UK_dgxl7aijrr4hq8314exhw407s'
严重: Servlet.service() for servlet [spring-mvc] in context with path [/learn] threw exception [Reques ...
- Nginx报错-找不到路径
前言 最近在git bash里输入命令启动Nginx服务,总提示找不到路径,令我困惑不已 我反复检查安装路径和输入命令,确认无误 小技巧:复制路径可直接ctrl+c后在git ba ...
- hdu 4297
有两个基础需要掌握: RMQ,以及LCA. RMQ:dp[i][j]表示下标从i开始,长度为2^j的一段元素中的最值.则易得状态转移如下:dp[i][j]=max/min(dp[i][j-1],dp[ ...
- Jenkins自动化部署.net程序
一.安装Jenkins 百度上一大堆就不做说明了. 二.构建.net前的准备 1.安装MSBUILD.EXE插件 1.1.进去jenkins->系统管理->插件管理 1.2.配置MSBUI ...
- C#中通过js实现个人用户和非个人用户的登陆
实现用户的登录功能,这里举一个个人和非个人用户的登录的例子 前台代码: <ul class="login_list clearfix"> <li> < ...
- 1.0 windows10系统安装步骤(1)
1.0 windows10系统安装步骤(1) 根据自己对笔记本系统的折腾,为了方便他人系统的安装,故总结笔记本系统的安装步骤 目录: 1.0 [windows10系统安装步骤(1)] 2.0 Linu ...
- HTML5标签构成
一个HTML5文件是由一些列的元素和标签组成的.元素是HTML5文件的重要组成部分,例如title(文件标题).img(图像)及table(表格)等.元素名不区分大小写,而HTML5用标签来规定元素的 ...
- poj 1564 Sum It Up 搜索
题意: 给出一个数T,再给出n个数.若n个数中有几个数(可以是一个)的和是T,就输出相加的式子.不过不能输出相同的式子. 分析: 运用的是回溯法.比较特殊的一点就是不能输出相同的式子.这个可以通过ma ...