是铸造结构定义的行为

时间:2016-07-07 19:12:46

标签: c struct undefined-behavior

你可以很容易地在C中转换(指向)结构:

例如,有结构A:

typedef struct {
    int a;
    int b;
}A;

和结构B:

typedef struct {
    A parent;
    int c;
}B;

现在,如果x是指向结构B的指针,我可以执行以下操作:

A *a_struct = (A*) x;

现在我在问这是否是实际定义的行为,或者它是否只是随机的'它适用于(某些)编译器(我用gcc测试了它)

0 个答案:

没有答案