作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 C 中组合多个枚举?我想要一个将在其他枚举中使用的通用枚举。
例如,我想编写如下代码:
enum common_e {
COMMON_LITERAL_0,
COMMON_LITERAL_1
}
enum first_e {
common_e, // <- Somehow I would like to have the two common_e's literals here
FIRST_LITERAL_0,
}
enum another_e {
common_e, // <- Somehow I would like to have the two common_e's literals here
ANOTHER_LITERAL_0,
ANOTHER_LITERAL_1
}
我关心的是让公共(public)文字在子枚举中保持相同的顺序,因为它们被用作函数指针数组的 ID。
有解决方案吗?
最佳答案
enum
没有命名空间,因此您不能有两个同名的枚举器。所以不,你不能这样做,即使使用预处理器或其他魔法也是如此。
如果您只是想让枚举值在普通值停止的地方继续,那么如何:
enum common_e {
COMMON_LITERAL_0,
COMMON_LITERAL_1,
COMMON_LITERAL_END__
};
enum first_e {
FIRST_LITERAL_0 = COMMON_LITERAL_END__,
FIRST_LITERAL_1
};
关于枚举的组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876324/
我是一名优秀的程序员,十分优秀!