Посмотрите на этот код:
struct A {
short s;
int i;
};
struct B {
short s;
int i;
};
union U {
A a;
B b;
};
int fn() {
U u;
u.a.i = 1;
return u.b.i;
}
Гарантируется ли, что fn()
возвращает 1
?
Примечание: это дополнительный вопрос к этому.