52 共用体

1,共用体属于构造类型,它可以包含多个类型不同的成员,和结构体非常类似,但也有不同之处,共用体有时也被称为联合或者联合体,定义格式为:

  union  共用体名{

    成员列表

  };

2,结构体和共用体的区别在于,结构体的各个成员会占用不同的内存,互相之间没有影响,而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员

 1 union data {  //data就是一个共用体,包含三个成员,共享数据空间,该空间的大小以占用最大的成员为准
 2     int n;
 3     char ch;
 4     short m;
 5 };
 6 void main(){
 7     union data a; //定义一个共用体变量 a
 8     printf("%d %d\n", sizeof(a), sizeof(union data));
 9 
10     a.n = 0x40;
11     printf("%d %c %d\n", a.n, a.ch, a.m);
12 
13     a.ch = '9';
14     printf("%d %c %d\n", a.n, a.ch, a.m);
15 
16     a.m = 0x2059;
17     printf("%d %c %d\n", a.n, a.ch, a.m);
18 
19     a.n = 0x3E25AD54;
20     printf("%d %c %d\n", a.n, a.ch, a.m);
21     printf("%d %c %d\n", a.n, a.ch, a.m);
22 }

 

 

猜你喜欢

转载自www.cnblogs.com/shanlu0000/p/12362868.html
52
今日推荐