У меня есть устаревший код, который использует enum
в качестве диапазона и выполняет итерацию по диапазону. Мне нужно перенести это на новую платформу и сделать его безопаснее.
Примечание. enum
s небезопасно перебирать, поскольку между значениями могут быть "дыры" или промежутки.
Я ищу безопасный шаблон языка C для типа диапазона.
Например, учитывая диапазон (КРАСНЫЙ, ФИОЛЕТОВЫЙ, СИНИЙ, ЗЕЛЕНЫЙ, ЖЕЛТЫЙ, ОРАНЖЕВЫЙ), я хочу перебирать каждое значение, например «ДЛЯ цвета В (КРАСНЫЙ, ФИОЛЕТОВЫЙ, СИНИЙ, ЗЕЛЕНЫЙ, ЖЕЛТЫЙ, ОРАНЖЕВЫЙ)».
При поиске в SO и в Интернете я получаю ответы о диапазоне типа данных, например о диапазоне целых чисел.
Этот код будет находиться во встроенной системе, использующей процессор ARM7.
enum { zero = 0, one = 1, two = 2};
, не так ли? - person Dan Fego   schedule 05.01.2012enum
, это приводит к неопределенному поведению (или трудно найти ошибки). - person Thomas Matthews   schedule 05.01.2012