那么“返回0”究竟意味着什么呢?

我非常精通PHP,但我已经开始涉足C.我已经看过代码了

return 0; 

在不返回值的函数的末尾。 这在PHP中没有使用,因为如果函数没有返回,则会自动返回值NULL。

所有我要问的是,用简单的英语, return 0实际上做了什么? 它是否像PHP一样,它将其参数作为函数调用的值返回? 这只是好习惯吗?

我知道之前已经多次询问过这个问题,但我从PHP开发人员的角度来问这个问题。 谷歌抛出的答案并没有那么简洁。

它是否像php一样,它将其参数作为函数调用的值返回? 这只是好习惯吗?

是的,PHP和许多其他语言从’C’借用了return关键字。 在所有语言中, return关键字具有相同的function – 从函数返回。 return关键字后面的任何内容都是返回给调用者的值。

这是一个好习惯吗? 是和否。并非所有函数都应返回值。 甚至在标准库中也有不少,不返回任何值。 因此他们的返回类型是void

但是main函数应该返回0 (也是EXIT_SUCCESS )来识别程序已成功执行。 否则为-1(也是EXIT_FAILURE

编辑:(感谢@KeithThompson):

EXIT_FAILURE是实现定义的。 1EXIT_FAILURE的常用值,但总的来说,你不必知道。

由于历史原因,可以写return 0; 从已声明为void的函数返回,如下所示:

 void foo( /* arguments */ ) { /* do things */ return 0; } 

这没有任何作用, 0 (或你放在那里的任何东西)都被扔掉了。 此外,如果你这样做,合理的编译器会给你一个警告信息。 所以不要这样做。

如果没有定义其他返回类型,则C中的函数默认返回int。 返回0将是一个很好的做法,以确保函数返回一个已知值,而不是一些随机值,以防调用者查看返回值。

它实际上返回0的int。

C编程语言允许退出或返回主函数的程序通过返回整数或返回宏EXIT_SUCCESSEXIT_FAILURE来指示成功或失败。 在Unix上,它们分别等于0和1。 AC程序也可以使用exit()函数指定整数状态或退出宏作为第一个参数。

除了宏EXIT_SUCCESSEXIT_FAILURE ,C标准没有定义返回码的含义。 使用返回代码的规则因平台而异。

在C中,只有在声明函数开头的void时才需要返回值。 第一个例子:

 #include  int main() { printf("Hello World!"); return 0; // you have to use return because main starting with int } 

第二个例子:

 #include  void main() { printf("Hello World!"); //in this case return is useless, main is a void function }