状态字作为函数的 return 值?

Status word as a return value for a function?

我正在用 C 语言做作业,我被要求创建一个 return 是一个 状态词 的函数,但我不知道这意味着什么更不用说如何声明 return 类型以及如何确定 returned 状态字。 请帮忙。

状态字可以是一个变量(有一个值),它告诉我们函数的执行情况——它是否成功地完成了它应该做的事情。

例如:

int doSomething()
{
    if (somethingCanBeDone)
    return SUCCESS;
    else 
    return FAILURE;
}

这里,SUCCESSFAILURE 是函数返回的状态字,表示函数是否已成功完成它必须完成的工作。

您可以通过两种方式完成。

  1. 使用#define语句来定义状态字。

    #define SUCCESS 1
    #define FAILURE 0
    
    int doSomething()
    {
        if (somethingCanBeDone)
        return SUCCESS;
        else 
        return FAILURE;
    }
    
    int main()
    {
          int returnval = doSomething();
          if (returnval == SUCCESS) 
          {
                //Do something
          }
          else
          {
                //Do something else.
          } 
    }
    
  2. 使用const int语句来定义状态字。

    const int SUCCESS = 1;
    const int FAILURE = 0;
    

这些类似于宏,但由于它们讲述了函数的状态,因此被称为状态词。

Complementing volerag 的 post 可以添加这样的方式:

typedef enum {
    FAIL,
    SUCCESS
} STATUS;

STATUS getStatus() {
    // ...
    return ...;
}

但这并没有太大的区别。