如果我在头文件中有以下内容,如何声明一个返回类型为Foo枚举的函数?
enum Foo
{
BAR,
BAZ
};
我可以像下面这样做吗?
Foo testFunc()
{
return Foo.BAR;
}
还是需要使用typedef或指针之类的东西吗?
Foo
。enum Foo
,直到你为其提供一个typedef。BAR
时,你不使用Foo.BAR
,而只使用BAR
。所有枚举常量共享相同的命名空间(即“普通标识符”命名空间,用于函数、变量等)。enum Foo { BAR, BAZ };
enum Foo testFunc(void)
{
return BAR;
}
或者,使用typedef
:
typedef enum Foo { BAR, BAZ } Foo;
Foo testFunc(void)
{
return BAR;
}
我认为enum
中的各个值本身就是标识符,只需使用:
enum Foo testFunc(){
return BAR;
}
我认为有些编译器可能需要
typedef enum tagFoo
{
BAR,
BAZ,
} Foo;
enum Foo
{
BAR,
BAZ
};
enum Foo testFunc()
{
enum Foo temp = BAR;
temp = BAZ;
return temp;
}