C++中如果需要中途退出程序,exit(1)和exit(0)以及return有什么区别呢?

如题所述

exit(1)和_exit(0)函数都可以用于结束进程,不过_exit(1)调用之后会立即进入内核,而exit(0)函数会先执行一些清理之后才会进入内核,比如调用各种终止处理程序,关闭所有I/O流.

return是退出函数模块并返回值给调用该函数的操作数,所以函数前要有返回类型,如果是用在main函数中的话,main函数返回值不能声明成void,那么此时的return与exit调用都是使程序结束并返回到操作系统。

return函数退出,将函数的信息返回给调用函数使用,与exit()和_exit()函数有本质区别。

#include<stdlib.h>

voidexit(intstatus);

DESCRIPTION
Theexit()functioncausesnormalprocesstermination
andthevalueofstatus&0377isreturnedtotheparent
(seewait(2)).

这是man手册中对exit()函数的秒数,exit()函数导致子进程的正常退出,并且参数status&0377这个值将被返回给父进程。exit()应该是库函数。exit()函数其实是对_exit()函数的一种封装(库函数就是对系统调用的一种封装)。

3.return不是系统调用,也不是库函数,而是一个关键字,表示调用堆栈的返回(过程活动记录),是函数的退出,而不是进程的退出。

温馨提示:答案为网友推荐,仅供参考
相似回答