我有一个结构类型的函数,其中包含一些整数和对枚举的引用,如下所示:
typedef struct Test {
Error e;
int temp;
int value;
}Test;
枚举在哪里:
typedef enum Error {
IOError,
ExternalError,
ElseError,
}Error;
假设我有一个函数想要返回一个错误(3 的枚举),具体取决于是否发生某些情况。
其中函数的类型为 Test(我无法更改传入的任何类型或值),
为什么我不能返回这样的错误?我将如何返回它(我无法更改结构定义或函数原型(prototype))。
Test errorFunc() {
return Test->e->IOError; //gives an error
}
任何帮助将不胜感激!
最佳答案
你不需要这样做,只需这样做
Error
errorFunc()
{
return IOError;
}
在 c没有静态结构成员,也没有命名空间
,因此您只需使用枚举
值1 直接。
另外,在 c++您不会使用 ->
间接运算符,而是执行类似的操作
class Test
{
public:
enum Error
{
IOError
};
};
And then you can have
Test::Error
errorFunc()
{
return Test::IOError;
}
这显然就是你感到困惑的原因。
<小时/>1enum
不是 struct
,因此从技术上讲它没有成员
关于c - 在 C 中访问枚举成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828106/