我不明白这个功能是标准的还是只是一些奇怪的东西。
struct A {
int field_1;
int field_2;
};
struct B {
struct A super;
};
int main() {
struct B b;
// Normally i must access like that to field_2
b.super.field_2 = 10;
// Is legal to access in this manner?
struct A* generic_ref = (struct A*)&b;
generic_ref->field_2 = 10;
return 0;
}
我尝试了 gcc,它似乎可以工作,但我认为这可能会在一些更复杂的情况下出现问题。