C++ - returning 0

C++ - returning 0

本文关键字:returning C++      更新时间:2023-10-16

所以我对C++完全陌生,但对Java已经了解很多了。

我目前正在看Newoston的教程,他说如果你返回0,计算机就会知道程序成功运行。

我现在的问题是:这会影响功能吗?如果我想返回一个计算出的数字,但它出乎意料地为0,我是返回0还是函数不返回?

如果返回0,计算机就会知道程序运行成功。

这是特定于主要功能的。任何其他函数都可以返回它们想要的任何内容。Main的特殊之处在于它既是程序的入口点,也是程序的出口点。当程序启动时,只在main返回时才调用main。观察主函数的返回代码是我认为这是一种过时的做法,但当出现错误时,你仍然会看到很多代码返回-1之类的东西。谁在看那个错误代码?大多数时候都是操作系统。

返回零是一种惯例,尤其是在Unix世界中。如果一个程序(因此它的main()函数)返回零,则表示它成功完成。其他值可能(并非必要)意味着错误。有关常见返回代码的列表,请参见sysexits.h

此外,如果您错过了return语句,main()仍将(隐式)返回零(对C++有效)。它在C++标准3.6.1第5点中定义:

如果控件到达主控件的末尾而未遇到返回语句,效果是执行返回0;

在shell中,例如Bash,您可以通过查看$?变量来检查从main()返回的值,例如:

$ g++ prog.cpp
$ ./a.out
$ echo $?
0

对于main()以外的函数,您应该记住,相比之下,零是一个布尔值false,因此返回零可能不会被视为成功(或true)。但是返回值可以是任何值,一般来说,它没有任何特殊意义,所以返回零是可以的。

main函数中返回0是唯一具有特殊意义的函数。一般来说,操作系统可以理解程序是成功的,就C++内部而言,这并不是特别有趣。