也可以全共用体赋值!不然就只有逐一赋值了!
union{char s[10];int a;}x={'a','b',
数组第一个定义的也不行,
typedef union MyUnion
{
int names[2];
int name;
}Unions;
void main(){
Unions u ;
u.names = {12,22};//报错
},还有就是什么叫全共用体赋值
typedef union MyUnion
{
int names[2];
int name;
}Unions;
int main(){
Unions u = {12,22};/* 初始化第一个元素*/
Unions au =u; /* 整体初始化 */
Unions xu;
xu=u;
/* 整体赋值 */
//报错
},
全共用体赋值,这个说法有些不准确,
记得好像,最早
C语言
union,struct 和数组类型的变量,
只能初始化;
至于赋值,只有内部类型才可以,
union,struct 和数组类型的变量
;
只能对其中的域(field)即C++中的成员变量,赋值;
后来可以整体赋值了(同类型的变量之间可以赋值)。
早期C语言,只有静态数组和外部数组可以初始化;
局部非静态数组是不能初始化的,现在可以了。
union Hello{
char hello[10];
int a;
};
Hello h={'1','2','3','\0'};
Hello h1=h;
int main(int argc, char *argv[])
{
Hello h3 =h;
printf("%s\n",h.hello);/* 输出 123 */
return 0;
}