У меня есть в одной библиотеке, liba
, enum , например:
typedef enum LIB_A_ENUM {
FOO,
BAR
} LIB_A_ENUM
В libb
У меня есть другое перечисление:
typedef enum LIB_B_ENUM {
FOO,
BAR,
BAZ // has a few different ones.
} LIB_B_ENUM
Я хотел бы использовать оба из них в libb
следующим образом:
int
some_function() {
if (LIB_A_ENUM.FOO) {
// ...
} else if (LIB_B_ENUM.FOO) {
// ...
}
}
Хотите знать, как делать такие вещи. Я представляю, что мне нужно просто создать группу глобальных переменных, таких как:
LIB_A_ENUM LIB_A_ENUM_FOO = FOO;
LIB_A_ENUM LIB_A_ENUM_BAR = BAR;
// ...
LIB_B_ENUM LIB_B_ENUM_FOO = FOO;
LIB_B_ENUM LIB_B_ENUM_BAR = BAR;
LIB_B_ENUM LIB_B_ENUM_BAZ = BAZ;
// ...
int
some_function() {
if (LIB_A_ENUM_FOO) {
// ...
} else if (LIB_B_ENUM_FOO) {
// ...
}
}
Хотите знать, если это такой подход, или есть лучший способ.
На самом деле, я понимаю, что вы не можете даже иметь два разных перечисления с одинаковыми клавишами. Так что, пожалуй, лучше всего, чтобы значения enum были глобально уникальными. Я не уверен.