C 中 return status 的初始值应该是多少?
What should be the initial value for return status in C?
任何通用函数的错误处理代码都遵循此模板
我这边的两个问题--
- 默认的 FAILURE 值应该是多少? (1 跟上主要或 0,或 -1 以避免所有混淆)
- 状态的初始值应该是多少? (失败或通过)
代码:
#define FAILURE 0 //or shall it be 1 for success and 0 for failure
#define SUCCESS 1
int DoSomething() {
int status = FAILURE; //or shall we assign success by default?
if (error1)
return FAIL_A
if (error2)
return FAIL_B
return SUCCESS;
}
int GetItDone() {
status = FAIL;
Status = DoSomething();
if (PASS != status) //likewise many calls can happen later
goto END;
END:
return status;
}
状态通过函数调用冒泡。
惯例是 0 表示成功,负值表示各种失败,正值表示预测成功。
其中,最常见的是返回 0 表示成功:否则会很奇怪。
至于您的代码,最初将状态设置为失败代码,并根据需要将其更改为成功将提供更高的程序稳定性。
成功返回 0 可以让你在失败时return不同的值
#define SUCCESS 0
#define FAILURE_CASE_1 -1
#define FAILURE_CASE_2 -2
任何通用函数的错误处理代码都遵循此模板 我这边的两个问题--
- 默认的 FAILURE 值应该是多少? (1 跟上主要或 0,或 -1 以避免所有混淆)
- 状态的初始值应该是多少? (失败或通过)
代码:
#define FAILURE 0 //or shall it be 1 for success and 0 for failure
#define SUCCESS 1
int DoSomething() {
int status = FAILURE; //or shall we assign success by default?
if (error1)
return FAIL_A
if (error2)
return FAIL_B
return SUCCESS;
}
int GetItDone() {
status = FAIL;
Status = DoSomething();
if (PASS != status) //likewise many calls can happen later
goto END;
END:
return status;
}
状态通过函数调用冒泡。
惯例是 0 表示成功,负值表示各种失败,正值表示预测成功。
其中,最常见的是返回 0 表示成功:否则会很奇怪。
至于您的代码,最初将状态设置为失败代码,并根据需要将其更改为成功将提供更高的程序稳定性。
成功返回 0 可以让你在失败时return不同的值
#define SUCCESS 0
#define FAILURE_CASE_1 -1
#define FAILURE_CASE_2 -2