Я немного озадачен изменением адреса памяти для объединения.
typedef union {
char state[x];
char encode[4];
int index;
} Location;
Мы используем несколько правил выравнивания при написании кода, например:
int 4 bit alignment
double 4 bit for linux
char * 4 bit for linux
"как этот союз будет выровнен"
Для этих условий;
Если
x < 4 ?
x = 4 ?
x > 4 ?
платформа Linux
сборка x86 64 бит
ПРИМЕЧАНИЕ: если у вас есть лучшее мнение, не стесняйтесь, когда решите этот вопрос