C++ exit和return区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ exit和return区别相关的知识,希望对你有一定的参考价值。

请问它俩有啥区别,可互换吗
API是什么

这两者根本就不一样, 否则c++就不会专门创建这两个关键字了!

至于可否互换,要看楼主的用途了。


先说功能.

    exit(exiitCode). 这个表示整个程序终止执行,并且可以返回一个数值给调用这个程序的环境.环境就可以知道这个程序执行的结果. 

    return 一般是函数返回的结果,这个结果可以是int类型,short类型,bool类型,等所以c++已有的类型和用户自定义的类型,甚至可以规定不返回任何值,直接是void. 这个值是返回给调用这个函数的环境.

综上所属:

    exit 这个是返回给调用该"程序"的外界环境.

    return 这个是返回给调用该"函数"的外界环境.



有点抽象吗? 我想是的, 所以我举个例子.

先看Code1.

int Fun()

     return 3;  // 这里不可以改成exit(3),如果改了,Code会解释.

int main()

    int i = Fun(); // 这里 i就直接等于Fun()函数返回的结果3.
    return 0; // 这里main()的return表示返回给外界.

再看看Code2:

int Fun()

    exit ( 3 );  // 函数执行到这里的时候就终止程序并且返回3.

    return 2; // 如果不添加这句话的话,会编译出错, 因为Fun()函数要求返回int型变量, 上一行exit(3)并不是"函数的"返回值.

int main()

   int i = Fun(); // Fun()函数还没有执行完就退出程序了, 所以i不会被赋予任何值.
   return 0;  // 程序根本就不会执行到这里来.


以上是说明exit和return两者不可以呼唤的地方.


下面就来说说两者可以互换的地方, 因为exit()主要是返回给调用程序外部环境的, 而一般来说,c++的程序都是从main函数开始的, 在以下情况我认为是一致的:

Code3:

int main()

   return 0;

调用Code3这个程序返回给外部的是0.

Code4:

void main()

   exit( 0 );

调用Code4这个程序返回给外部的结果仍然是0;


这两者的效果几乎相同, 但是还是有细微不同的地方, 一般是在大型项目才会考虑的.楼主现在可以暂时不用关心这个.

因为main()函数也是函数, 所以它的return(), 在某种程度上相当于exit()的作用, 在这种情况下,这两者是可以互换的.



如果楼主还有什么不明白,请告诉我.











参考技术A exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1,给外部程序用的。

return是表示函数终止执行返回,函数只是当前的一个子模块,内部用的。
参考技术B return 是函数返回 将进程处理权返回调用方 exit是调用库函数库函数 调用API函数 结束进程 参考技术C 两回事,意义完全不同

以上是关于C++ exit和return区别的主要内容,如果未能解决你的问题,请参考以下文章

c语言exit和return的区别

return 1、return 0、return -1 和 exit 的区别?

exit()和return语句的区别

exit 和return的区别

PHP:exit()、die() 和 return 有啥区别;在“自我”和包含的文件中?

c语言exit和return有啥区别