Ну для енума мб плохая идея. А там именно массив структур с адекватными функциями для работы с этим массивом, напрямую к нему ты никогда не обращаешься
цепочка if-else if, в которой отдельные ветки были под дефайнами и "все работало" до тех пор, пока не оказалось, что при каком-то валидном наборе дефайнов оно вообще не является синтаксически корректным