Usually, you see stuff like that because arrays are not possible, in which case they're just about acceptable... (We have a naming convention for sensors and actuators so we get things like LF3_Flex_Fill or THJ2_Pos - these can be generated mechanically, are broken up as words by editors, and so on - but we then use arrays and references to handle them).
But really, there should be an array struct count { int v; int Min; int Max; int Step; } WidgetCount[]; and another struct count WalkingCount[]
and enums should be used for the access.
It's not like the compiler can't optimise away the overhead.
cheers, Rich.