我非常精通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
但重点是,你不必知道.
由于历史原因,可以写入return 0;
从已声明为的函数返回void
,如下所示:
void foo( /* arguments */ )
{
/* do things */
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这什么都不做,而且0
(或者你放在那里的任何东西)都被扔掉了.此外,如果你这样做,合理的编译器会给你一个警告信息.所以不要这样做.
如果没有定义其他返回类型,则C中的函数默认返回int.如果调用者正在查看返回值,则返回0将是确保函数返回已知值而不是某个随机值的良好做法.