不得不说的“return 0;”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不得不说的“return 0;”相关的知识,希望对你有一定的参考价值。

引子:

  相信很多的C语言初学者都会有一个问题——问什么在主函数的最后都要加上一行在实际运行过程中没有实际效果的”return 0;”呢?实际上,很多编了4年代码的同学,也只是将它作为一个规范,课堂上老师的解释也很模糊,导致这个问题普遍的被忽略掉,现在,我们就来探讨一下这个”return 0;”在函数中,究竟有什么作用。

 

一、return的作用

return、continue、break、goto

在C/C++中,这四个关键字设计的初衷都是为了方便程序的开发和阅读,但goto在开发者长期的使用过程中,被认为是“影响程序的阅读,使程序变得混乱,可能还会出现死循环”,被禁用了,所以无论是在教科书中,还是课堂讲授中,都很少提及它。

言归正传,return的作用是终止函数的运行,直接跳出该函数,后面可以加上函数的返回值,也可以直接使用(在无返回值的函数中)。
code 1:

1 int maxNumber(int a, int b)
2 {
3     if(a > b)
4     {
5         return a;//直接跳出
6     }
7     return b;
8 }

 

二、return 0的作用(主函数中)

“return 0”的作用,就是返回了一个标识,表示正常退出。

什么意思呢?简单点来说,就是告诉操作系统,进程执行完了,而且没有问题,你可以放心的让下一个进程执行了。

如果不加return 0的话,系统无法判断运行结果,会认为他是一个异常返回,会采取相应的措施来处理它。

 

三、命令行下直观的演示

* "1 && dir "的意思执行1.exe,如果正常返回,则执行dir命令。

code 2:

1 #include "stdio.h"
2 
3 int main()
4 {
5     printf("this!\\n");
6     return 0;
7 }

picture 1:执行结果

技术分享

code 3:

1 #include "stdio.h"
2 
3 int main()
4 {
5     printf("this!\\n");
6 }

picture 2:执行结果

 技术分享

结果很明显,不加return 0;的代码,系统将他视为异常返回了。

 

四、小的知识点

  • 不要认为把int main()改为void main()就可以不用return 0了,这是一种很不负责的行为。
  • main的返回值必须为int型,不要出其不意,来个return a。
  • C99的编译器已经可以智能的在编译时添加return 0了,但vc6,以及更早的版本中并没有这项功能,而且为了后期的移植,还是要养成return 0的好习惯!

 

五、总结

无论你知不知道原理,都要加return 0!这是专业人士和业余人士在习惯上的区别!


以上是关于不得不说的“return 0;”的主要内容,如果未能解决你的问题,请参考以下文章

有关内部类不得不说的

面向对象的设计和开发不得不说的一些事

面向对象的设计和开发不得不说的一些事

asList和ArrayList不得不说的故事

不得不说微信之怪现状

相逢即是缘丨我与思否不得不说的故事