如果我在头文件中有类似下面的内容,我该如何声明一个返回 Foo 类型枚举的函数?
enum Foo
{
BAR,
BAZ
};
我可以做类似下面的事情吗?
Foo testFunc()
{
return Foo.BAR;
}
或者我是否需要使用 typedef 或指针之类的东西?
最佳答案
在 C++ 中,您可以只使用 Foo
。
在 C 中,您必须使用 enum Foo
直到您为它提供 typedef。
然后,当您引用 BAR
时,您不使用 Foo.BAR
而只是 BAR
。所有枚举常量共享相同的命名空间(“普通标识符”命名空间,由函数、变量等使用)。
因此(对于 C):
enum Foo { BAR, BAZ };
enum Foo testFunc(void)
{
return BAR;
}
或者,使用 typedef
:
typedef enum Foo { BAR, BAZ } Foo;
Foo testFunc(void)
{
return BAR;
}
关于c - 从 C 中的函数返回枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742699/