【发布时间】:2018-05-17 06:25:47
【问题描述】:
我有一个函数,它进行一些初始化并调用其他函数,每个函数都返回一个错误代码。在第一次检测到这样的错误后,我希望能够从此函数返回:
int error_code = FirstFunction();
if (error_code != 0) {
return error_code;
}
error_code = SecondFunction();
if (error_code != 0) {
return error_code;
}
// etc...
但是,这不仅看起来很麻烦,而且还有多个退货声明,而且出于合规原因,在我公司这是不允许的。
我怎样才能重新排列它,以便只有一个 return 语句,但在第一个错误代码之后仍然停止?我能想到的唯一方法是嵌套 if 语句:
int error_code = FirstFunction();
if (error_code == 0) {
error_code = SecondFunction();
if (error_code == 0) {
error_code = ThirdFunction();
// etc...
}
}
return error_code;
但这很快就会变得不合理。有没有其他方法可以做到这一点?
编辑:在我的程序中,返回码 0 表示成功(OK),非零表示失败/错误(NOT OK)
【问题讨论】:
-
那么
1你会回来吗? -
0 以外的任何值。0 表示没有错误,非零表示错误
-
发布
error_code的类型。
标签: c if-statement return