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

标签 c++ c enums

如果我这样写:

typedef enum {
  foo_1,
  foo_2
}foo ;

我发现我可以用

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

我可以直接使用

int footype = foo_1 in c,

那么有没有一种方法可以编写同时适用于 C++ 和 C 的相同代码?代码在一个只有一种结构的头文件中。

最佳答案

int footype = foo_1;

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

int footype = foo::foo_1;

此语法仅对于 C++11 的强类型枚举是必需的。

关于c++ - C 和 C++ 中的 ENUM 类型和用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272480/

相关文章:

c++ - 为什么私有(private)继承对象允许成员函数将 derived* 强制转换为 base* 但外部人员不允许?

c++ - 我如何继承 gtest testing::Test?

c - 当尝试实现字符串数组时我做错了什么?

python - 编写数论程序

c++ - 从主 CUDA 声明设备变量

c++ - 如果客户端的互联网断开连接,客户端套接字不会关闭。如何在服务器中检测到此事件?

c - int main(int argc, char **argv ) 与 c 中的 < stdin > stdout

java - 如何生成具有给定数量的属性的给定数量的随机对象?

linux - 枚举类型声明的 C++11 编译错误如预期的那样在数字常量之前

xml - JaxB 在从 XSD 生成枚举时添加 undescore(_)