含有union的结构体能被直接赋值吗

union data1
{ int i;
unsigned char c[4];

};
union data2
{ int i
unsigned char c[4];

float f;

};

struct st1
{
int id;
union data1 value;
};
struct st2
{
int id;
union data2 value;
};

st1 firstdata;
st2 seconddata;

firstdata.id = 1;
firstdata.value.i = 2;
seconddata = firstdata; //success or fail????

问题:如题 含有union的结构体A能直接赋值给另一个含有union的结构体B吗?其中B中union的成员包含了A中union中所有的成员

肯定不行呀,你这样已经是两个不同类型了,需要用成员一个一个进行