Ответ 1
Вы не можете.
Существует один метод, который позволяет вам подсчитать количество перечислимых чисел. Он выглядит как
typedef enum {
value_one,
value_two,
value_three,
...
enum_count
} my_enum;
Теперь значение enum_count
- это количество значений в перечислении. Однако этот метод работает только в том случае, если все перечисления имеют неявное значение, где value_one
- 0
, value_two
- 1
и т.д. Из-за этого последнее значение в перечислении всегда имеет значение количество значений перечисления. В вашем случае константы перечисления имеют явные значения, которые не монотонно увеличиваются. Невозможно получить счет из этого типа перечисления. И даже в теоретическом мире, где вы могли бы получить счет, это не помогло бы вам, потому что вы не могли получить значение данной константы enum.