c语言结构体和共用体的区别和联系