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

时间:2013-02-18 02:15:08

标签: c return

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

return 0;

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

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

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

6 个答案:

答案 0 :(得分:16)

  

它是否像php一样,它将其参数作为值的值返回   功能调用?这只是一种好的做法吗?

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

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

main函数应返回0(也EXIT_SUCCESS)以确定程序已成功执行。否则为-1(也是EXIT_FAILURE

编辑:(感谢@KeithThompson):

EXIT_FAILURE是实现定义的。 1EXIT_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_SUCCESSEXIT_FAILURE来表示成功或失败。在Unix上,它们分别等于0和1。 C程序也可以使用exit()函数指定整数状态或退出宏作为第一个参数。

除了宏EXIT_SUCCESSEXIT_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

}
相关问题