我非常精通PHP,但我已经开始涉足C.我已经看过代码了
return 0;
在不返回值的函数的末尾。这不是在PHP中使用,因为如果函数没有返回,则会自动返回值NULL。
所有我要问的是,用简单的英语,return 0
实际上做了什么?它是否像PHP一样,它将其参数作为函数调用的值返回?这只是一种好的做法吗?
我知道之前已经多次询问过这个问题,但我从PHP开发人员的角度来问这个问题。谷歌抛出的答案并不那么简洁。
答案 0 :(得分:16)
它是否像php一样,它将其参数作为值的值返回 功能调用?这只是一种好的做法吗?
是的,PHP和许多其他语言都借用了'C'中的return
关键字。在所有语言中,return
关键字具有相同的功能 - 从函数返回。 return
关键字后面的任何内容都是返回给调用者的值。
这是一个好习惯吗?是和否。并非所有函数都应返回值。甚至在标准库中也有不少,不返回任何值。因此,他们的返回类型为void
。
但main
函数应返回0
(也EXIT_SUCCESS
)以确定程序已成功执行。否则为-1(也是EXIT_FAILURE
)
编辑:(感谢@KeithThompson):
EXIT_FAILURE
是实现定义的。 1
是EXIT_FAILURE
的常见值,但重点是,您无需知道。
答案 1 :(得分:8)
由于历史原因,可以编写return 0;
以从已声明为void
的函数返回,如下所示:
void foo( /* arguments */ )
{
/* do things */
return 0;
}
这没有任何作用,而0
(或你放在那里的任何东西)都被扔掉了。此外,如果你这样做,合理的编译器会给你一个警告信息。所以不要这样做。
答案 2 :(得分:6)
如果没有定义其他返回类型,则C中的函数默认返回int。如果调用者正在查看返回值,则返回0将是确保函数返回已知值而不是某个随机值的良好做法。
答案 3 :(得分:5)
它实际上是返回0的int。
答案 4 :(得分:1)
C编程语言允许退出或返回主函数的程序通过返回整数或返回宏EXIT_SUCCESS
和EXIT_FAILURE
来表示成功或失败。在Unix上,它们分别等于0和1。 C程序也可以使用exit()
函数指定整数状态或退出宏作为第一个参数。
除了宏EXIT_SUCCESS
和EXIT_FAILURE
之外,C标准没有定义返回码的含义。返回代码的使用规则因平台而异。
答案 5 :(得分:0)
在C中,只有在声明函数开头的void时,才必须返回值。 第一个例子:
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0; // you have to use return because main starting with int
}
第二个例子:
#include <stdio.h>
void main()
{
printf("Hello World!");
//in this case return is useless, main is a void function
}