我正在处理C中的作业,并且被要求创建一个返回状态字的函数,但我不知道这意味着什么,更不用说如何声明返回类型和如何确定返回的状态字。 请帮忙。
答案 0 :(得分:1)
Сomplementingvolerag的帖子可以添加这样的方式:
typedef enum {
FAIL,
SUCCESS
} STATUS;
STATUS getStatus() {
// ...
return ...;
}
但这并没有太大的区别。
答案 1 :(得分:0)
状态字可以是一个变量(有一个值),它告诉函数的执行 - 它是否成功完成了应该做的事情。
例如:
int doSomething()
{
if (somethingCanBeDone)
return SUCCESS;
else
return FAILURE;
}
这里,SUCCESS
和FAILURE
是从函数返回的状态字,用于判断函数是否已成功完成它必须完成的工作。
你可以用两种方式做到这一点。
使用#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.
}
}
使用const int
语句定义状态字。
const int SUCCESS = 1;
const int FAILURE = 0;
这些类似于宏,但由于它们讲述了函数的状态,因此它们被称为状态字。
答案 2 :(得分:0)
我想这个变种会更好。
#include <stdio.h>
enum {MORE=0, LESS, EQUAL, UNKNOWN};
int exec_func(int first, int second)
{
if (first > second) return MORE;
else if (first < second) return LESS;
else if (first == second) return EQUAL;
return UNKNOWN;
}
int main(void)
{
int res = exec_func(1, 2);
if (res == LESS){
//do some stuff
}else{
return -1;
}
res = exec_func(1, 1);
if (res == EQUAL){
//do smth
}else{
return -1;
}
return 0;
}
例如,这可用于描述状态。 状态:-1或6什么也没说。但是STATUS_SUCCESS或STATUS_FAILED描述了它的原因。
P.S。抱歉我的英语不好。