ENUM类型和c和c ++中的用法

ste*_*ave 3 c c++ enums

如果我这样写:

typedef enum {
  foo_1,
  foo_2
}foo ;
Run Code Online (Sandbox Code Playgroud)

我发现我可以使用

int footype = foo::foo_1 在c ++中

我可以直接使用

int footype = foo_1 在c中,

那么是否有一种方法可以编写在c ++和c中都能运行的相同代码?代码在一个只有一个结构的头文件中.

Pra*_*ian 6

int footype = foo_1;
Run Code Online (Sandbox Code Playgroud)

这将在C和C++中编译.

int footype = foo::foo_1;
Run Code Online (Sandbox Code Playgroud)

只有C++ 11的强类型枚举才需要此语法.