有没有办法在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
}
Run Code Online (Sandbox Code Playgroud)
我关心的是在子动画中将普通文字保持为相同的顺序,因为它们被用作函数指针数组的ID.
有没有解决方案呢?
enums不是命名空间,因此您不能拥有两个具有相同名称的枚举器.所以不,即使使用预处理器或其他魔法,也无法做到这一点.
如果你只是想让枚举值继续保留常见的值,那么如何:
enum common_e {
COMMON_LITERAL_0,
COMMON_LITERAL_1,
COMMON_LITERAL_END__
};
enum first_e {
FIRST_LITERAL_0 = COMMON_LITERAL_END__,
FIRST_LITERAL_1
};
Run Code Online (Sandbox Code Playgroud)