我在C函数中的错误应该返回什么?

Ric*_*ral 4 c error-handling error-code return-value

目前我在C中的自定义函数中返回-1,如果出现错误,0表示成功.例如,使用链表和某些功能需要非空列表才能正常工作.如果作为参数传递的列表为空,则返回-1(错误),如果它不为空则返回0并且函数没有问题.

我可能会返回1而不是-1吗?

这是用C做事的标准方式还是你推荐一种不同的方法?

Has*_*yed 8

返回非零值以指示失败.这样你可以编写函数调用,如下所示:

if(func_call())
{
    doErrorHandling();
}
Run Code Online (Sandbox Code Playgroud)

此约定允许您使用任何!0值来指示特定错误,这将允许您以统一的方式使用一个变量.因此,if 上面示例中显示的主体可以有一个switch语句来处理特定错误.

你可以采用不同的方式 - 但是如果你选择坚持一个约定 - 不幸的是win32 API(和我使用的其他API)混合和匹配约定.

  • +1**不一定是正**,但是0表示成功,而0表示错误就是你所需要的.事实上,根据我的经验,错误代码更为常见. (4认同)