C 中 return status 的初始值应该是多少?

What should be the initial value for return status in C?

任何通用函数的错误处理代码都遵循此模板 我这边的两个问题--

  1. 默认的 FAILURE 值应该是多少? (1 跟上主要或 0,或 -1 以避免所有混淆)
  2. 状态的初始值应该是多少? (失败或通过)

代码:

#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