В 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;
}