我应该返回0或1以获得成功的功能吗?

时间:2012-03-03 19:55:19

标签: c boolean

  

可能重复:
  Error handling in C code
  What return value should you use for a failed function call in C?

我总是使用0,但它在ifwhile等中无法读取。

我应该退回1吗?为什么主要功能return 0成功?

2 个答案:

答案 0 :(得分:44)

它被C标准定义为0成功(积分转到hvd)。

But

  

为了获得更好的可移植性,您可以使用宏EXIT_SUCCESS和   EXIT_FAILURE表示成功的常规状态值   失败,分别。它们在文件stdlib.h中声明。

(我说的是从退出或类似的电话中返回操作系统的值)

至于你的功能,只要你沿着你的程序保持这种方式,就可以返回你想要的内容并使代码更具可读性。

答案 1 :(得分:15)

main使用0表示成功的原因是它被用作操作系统应用程序的退出代码,其中0通常表示成功,1(或更高)表示失败。 (当然,您应该始终使用预定义的宏EXIT_SUCCESSEXIT_FAILURE。)

然而,在应用程序中,使用零表示失败并且非零表示成功更自然,因为返回值可以直接用于if,如下所示:

if (my_func())
{
  ...
}