我应该返回0或1成功的function?

可能重复:
在C代码中处理错误
你应该使用C中的失败函数调用什么样的返回值?

我总是使用0,但是它在if,while等等中不可读

我应该返回1吗? 为什么main函数返回成功?

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

为了提高可移植性,您可以分别使用macrosEXIT_SUCCESS和EXIT_FAILURE作为常规状态值来获得成功和失败。 它们在文件stdlib.h中声明。

(我正在谈论从退出或类似的调用返回到操作系统的价值)

至于你的function,只要你把它保留在你的程序中,就可以返回你想要的,并使代码更具可读性。

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

但是,在应用程序中,使用零来取得成功是非常自然的,因为返回值可以直接用在if中,如下所示:

 if (my_func()) { ... } 

如果你正在返回一个布尔状态,那么你可以键入一个int并使用它。 这使你的函数的返回types变得明显,你(和其他人)不需要检查它是否返回0或1。

 typedef int BOOL; #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif BOOL myfunc() { ... return TRUE; }