Я наткнулся на код, основанный на объединениях в C. Вот код:
union {
struct {
char ax[2];
char ab[2];
} s;
struct {
int a;
int b;
} st;
} u ={12, 1};
printf("%d %d", u.st.a, u.st.b);
Я просто не мог понять, как получилось 268 0
. Как инициализировались значения?
Как здесь функционирует профсоюз? Не должно быть выхода 12 1
. Было бы здорово, если бы кто-нибудь мог объяснить, что именно здесь происходит подробно.
Я использую 32-битный процессор и Windows 7.