C中返回状态的初始值应该是多少?

时间:2015-10-09 06:12:50

标签: c macros return status

任何常规函数的错误处理代码都遵循此模板 我最后的两个问题 -

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

    #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;
        }
    

    状态通过函数调用冒泡。

2 个答案:

答案 0 :(得分:2)

约定为0表示成功,负值表示各种失败,正值表示预测成功。

其中,为了成功而返回0是最常见的:否则将是特殊的。

至于您的代码,最初将状态设置为失败代码并在适当时将其更改为成功将提供更多程序稳定性。

答案 1 :(得分:1)

成功返回0可让您在失败的情况下返回不同的值

#define SUCCESS 0
#define FAILURE_CASE_1 -1
#define FAILURE_CASE_2 -2