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

Sta*_*ers 14 c return

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

return 0;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ani*_*nge 16

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

是的,PHP和许多其他语言return从'C' 借用了关键字.在所有语言中,return关键字具有相同的功能 - 从函数返回.跟随return关键字的任何内容都是返回给调用者的值.

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

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

编辑:(感谢@KeithThompson):

EXIT_FAILURE是实现定义.1是一个共同的价值,EXIT_FAILURE但重点是,你不必知道.

  • "EXIT_FAILURE"的值是实现定义的.它不是*通常是`-1`; `1`更常见.但重点是你不必知道我们的关心价值是什么. (2认同)

Bro*_*ses 8

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

void foo( /* arguments */ )
{
  /* do things */
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

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


Joh*_*ohn 6

如果没有定义其他返回类型,则C中的函数默认返回int.如果调用者正在查看返回值,则返回0将是确保函数返回已知值而不是某个随机值的良好做法.

  • 值得注意的是,这是ANSI C,现代C(C99和更新版)不鼓励或不允许推断类型. (6认同)

roc*_*cky 5

它实际上返回0的int.