К слову, в C++ использование enum дает квази-строгую типизацию. В
enum нельзя просто так записать int, скрытое приведение типа не
сработает. В этом смысле, определить enum со всеми возможными смещениями - нормальная практика.
Но "область видимости" для этой (и любой другой) магии, все же, лучше сжать до пары мелких функций.