我应该返回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_SUCCESS
和EXIT_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; }