Как получить enum count

Как получить enum count

у меня есть перечисление

typedef enum{

DEL_TIME_VALUE    = -1,
DEL_TIMESEC_VALUE = 100,
DEL_TIMEMIN_VALUE = 200,
DEL_TIMEHOUR_VALUE = 300,
DEL_DAY_VALUE      = 1000,
DEL_COUNT_VALUE    = 1000,
....
.....
.....
DEL_END             =90002
}WORKINGTIME;

Как мне получить количество перечислений.

Я пытаюсь ниже для цикла!

for(int i=DEL_TIME_VALUE; i<=DEL_END; i++) {

}

Я думаю, что это не хорошо!

может ли кто-нибудь сказать мне, как получить количество перечислений! которые объявлены в enum.

спасибо заранее!

2 ответов


ты не можешь.

есть один метод, который позволяет получить количество перечислений. Похоже на

typedef enum {
    value_one,
    value_two,
    value_three,
    ...
    enum_count
} my_enum;

теперь значение enum_count - количество значений в перечислении. Однако этот метод работает только в том случае, если перечисления все несут свои подразумевается значение, где value_one и 0, value_two is 1, etc. Из-за этого последнее значение в перечислении всегда имеет значение количества значений перечисления. В вашем случае константы перечисления имеют явно значения, которые не монотонно увеличиваются. Невозможно получить счет из этого типа перечисления. И даже в теоретическом мире, где вы можете получить счет, это не поможет вам, потому что вы не можете получить значение данной константы перечисления.


значения enum являются константами времени компиляции и недоступны для интроспекции в коде.

вместо этого вы можете посмотреть на реализацию пользовательского enum класс с Objective-C (что-то сродни перечислению Java typesafe http://docs.oracle.com/javase/1.5.0/docs/guide/language/enums.html).