可能重复:
Error handling in C code
What return value should you use for a failed function call in C?
我总是使用0,但它在if
,while
等中无法读取。
我应该退回1吗?为什么主要功能return 0
成功?
答案 0 :(得分:44)
它被C标准定义为0
成功(积分转到hvd)。
为了获得更好的可移植性,您可以使用宏
EXIT_SUCCESS
和EXIT_FAILURE
表示成功的常规状态值 失败,分别。它们在文件stdlib.h
中声明。
(我说的是从主,退出或类似的电话中返回操作系统的值)
至于你的功能,只要你沿着你的程序保持这种方式,就可以返回你想要的内容并使代码更具可读性。
答案 1 :(得分:15)
main
使用0表示成功的原因是它被用作操作系统应用程序的退出代码,其中0通常表示成功,1(或更高)表示失败。 (当然,您应该始终使用预定义的宏EXIT_SUCCESS
和EXIT_FAILURE
。)
然而,在应用程序中,使用零表示失败并且非零表示成功更自然,因为返回值可以直接用于if
,如下所示:
if (my_func())
{
...
}