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 上.” ... 
随机推荐
- JavaWEB开发入门
			1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: •静态web资源(如html 页面 ... 
- 自己动手丰衣足食,为Zepto添加Slide动画效果
			一.缘由 公司的移动端项目,采用zepto为主要框架,但是zepto毕竟是精简版的jquery,体积小了,功能自然没有这么强大,特别是动画和选择器这两块,需要我们自己去拓展. 在项目开发过程中,很多页 ... 
- 延时提示框制作思路[简单javascript案例]
			模拟QQ软件中的弹出提示框功能,制作一个简易的延时提示框. 功能实现: 1.当鼠标移入指定区块时,弹出隐藏的区块:当鼠标移出指定区块时,弹出的隐藏区块再次隐藏. 2.同时要求在鼠标移入该弹出区块后,区 ... 
- 2019手机号码JS正则表达式
			前端的正则表达式验证往往是最繁多最复杂的,所以整理了一些最近自己常用的正则表达式,希望能对大家有所帮助! /* 合法uri */ export function validateURL(textval ... 
- Blender插件加载研究
			目标 [x] 解析Blender插件代码加载原理, 为测试做准备 结论 采用方法3的方式, 可以在测试中保证重新加载子模块, 是想要的方式, 代码如下: _qk_locals = locals() d ... 
- python请求服务器图片并下载到本地磁盘
			>>> import os >>> os.getcwd() 'C:\\Python33' >>> os.chdir('E:\\python\\mm ... 
- 利用windbg获取dump的dll文件
			根据堆栈对应的地址查找其对应的Module ID,然后将对应的Module保存. !IP2MD 命令从托管函数中获取 MethodDesc 结构地址. !dumpmodule 1caa50 下面的命令 ... 
- CSS的常用属性(三)
			静态定位 position: static (默认) 标准流 绝对定位 position: absolute 特点: 元素使用绝对定位之后,不占据原来的位置(脱标) 元素使用绝对定位,位置是从浏览器出 ... 
- Excel 出现后三位为000的情况
			1.先将要填充的excel列全部转换成文本,然后再把列贴近来. 2.数据少的话,选择那个excel,在前面加上'号 
- Java_Web之JSTL和EL
			今天学了JSTL和EL,替换了以前for循环,感觉代码越来越少了,十分方便.JSTL和EL密不可分. 一.什么是EL表达式? 什么是EL EL即Expression Language(表达式语言) E ... 
