есть несколько структур разного размера (8-16-32-64 bit), которые хранят внутри набор флагов или данных и я хочу обращаться к ним, как к обычной переменной
Такая штука, кстати, очень напоминает битовые поля, если я правильно понял, что нужно. Можно делать что-то такое:
struct foo {
unsigned flag:1;
unsigned other_flag:1;
unsigned data_with_5_bits: 5;
....
};