c++ - "static enum"在 C++ 中是什么意思?

标签 c++ visual-studio enums static

我最近遇到了这个:

static enum Response{
    NO_ERROR=0,
    MISSING_DESCRIPTOR,
    ...
};

它在 Microsoft VS2005 下编译和工作。但是,我不确定“静态”修饰符应该做什么。和下面有什么不同吗?

enum Response {
    NO_ERROR=0,
    MISSING_DESCRIPTOR,
    ...
};

最佳答案

仅删除省略号的确切代码不是有效的 C++。您不能在 enum 声明中使用 static 存储类说明符;它在那里没有任何意义(只有对象、函数和匿名 union 可以声明为 static)。

但是,您可以在一个声明中声明一个 enum 和一个变量:

static enum Response {
    NO_ERROR = 0,
    MISSING_DESCRIPTOR
} x; 

这里的static适用于x,实际上和你说的一样:

enum Response { 
    NO_ERROR = 0,
    MISSING_DESCRIPTOR
};

static Response x;

关于c++ - "static enum"在 C++ 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971436/

相关文章:

c++ - 防止 lambda 的返回类型推导

c++ - 如果在 std::wstring 声明和 std::setlocale() 之后调用,则 mbrlen() 无法返回

c++ - 将 GUI 添加到非托管/boost C++ 应用程序

java - Java 函数式接口(interface)的单例作为枚举

c++ - 我可以安全地假设 if(true) 和 if(false) 将被优化吗?

c++ - 查找从未排序的数组中删除的一个和 N 个元素

vb.net - 10 页 Crystal Reports 后增加参数字段

c++ - 如何制作不需要用户使用特定版本的 Visual Studio 的 C++ API?

java - 我可以将所有这些功能放入一个枚举中吗?

mysql - 使用 ENUM 字段复制 mysql 表