Eclipse 中的枚举声明

Posted

技术标签:

【中文标题】Eclipse 中的枚举声明【英文标题】:Enum declaration in Eclipse 【发布时间】:2010-11-21 09:30:52 【问题描述】:

我正在 Eclipse、Linux 中编译一个 c++ 项目。

该项目过去是在 Windows 中编译的。

我有这样的枚举声明:

enum nameofenum:UINT32

  one=0,
  two=1

结果是eclipse出错了。

    :UINT32是什么意思? 如何将此声明切换到 Linux?

谢谢!!

【问题讨论】:

请通过选择代码并按 CTRL+K 来格式化您的代码。使用预览! 【参考方案1】:

这看起来像 strongly typed enum,这是 C++0x 的一个特性。基本上,它指定了枚举的底层类型,所以onetwo 将是UINT32s。

要编译它,您需要一个支持 C++0x 语言特定部分的编译器。我相信GCC 4.4 和Visual C++ 在一定程度上支持强类型枚举。

【讨论】:

【参考方案2】:

: UINT32 声明了枚举的底层类型;这意味着枚举将由UINT32 表示。

这是 C++0x 中添加的新 C++ 功能,称为强类型枚举。 Visual C++ 至少从 Visual C++ 2005 开始就支持它;您使用的 g++ 版本可能不支持。

至于如何使用 g++ 来实现这一点,这取决于。如果您没有任何依赖于特定基础类型的代码,那么您可以将其删除。如果您确实有依赖于特定基础类型的代码,您可以考虑将枚举类型的使用替换为基础类型(即,使用UINT32 而不是nameofenum);不过,这不是很好。

【讨论】:

【参考方案3】:
    UINT32 是无符号的 32 位整数,因此您的枚举由 4bytes int 表示。 视情况而定。我不确切知道,但是您真的需要将此枚举用作 32 位 int 吗?也许你可以避免这个 :UINT32 声明?

【讨论】:

【参考方案4】:

: UINT 表示枚举标识符的底层类型是UINT。 它是描述为here 的Microsoft 扩展。要使其编译删除: UINT

【讨论】:

以上是关于Eclipse 中的枚举声明的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse Inidigo 中的注释声明托管 bean 和代码完成 [重复]

跳转到 Eclipse IDE 中的接口实现

带有 ADT 的 Eclipse 因“import android”而崩溃。编辑器中的声明

Eclipse 枚举类报错

Eclipse 内容辅助在枚举常量参数列表中不起作用

Eclipse中的重复.java文件