那么“返回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
是实现定义的。 1
是EXIT_FAILURE
的常用值,但总的来说,你不必知道。
由于历史原因,可以写return 0;
从已声明为void
的函数返回,如下所示:
void foo( /* arguments */ ) { /* do things */ return 0; }
这没有任何作用, 0
(或你放在那里的任何东西)都被扔掉了。 此外,如果你这样做,合理的编译器会给你一个警告信息。 所以不要这样做。
如果没有定义其他返回类型,则C中的函数默认返回int。 返回0将是一个很好的做法,以确保函数返回一个已知值,而不是一些随机值,以防调用者查看返回值。
它实际上返回0的int。
C编程语言允许退出或返回主函数的程序通过返回整数或返回宏EXIT_SUCCESS
和EXIT_FAILURE
来指示成功或失败。 在Unix上,它们分别等于0和1。 AC程序也可以使用exit()
函数指定整数状态或退出宏作为第一个参数。
除了宏EXIT_SUCCESS
和EXIT_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 }