联合体/共同体 union

定义一个共同体跟定义struct的方式差不多

首先定义一个结构体:

typedef struct

{

  unsigned char floor;

  unsigned char room;

  unsigned short region;

}position;

 

再定义一个共同体

typedef union

{

 position lightpos;

 unsigned char posbyte[4];

}p;

 

如果如下赋值:

p.lightpos.floor = 0x10;

p.lightpos.room = 0x01;

p.lightpos.region = 0x0501;

 

则:

p.posbyte[0] = 0x10;

p.posbyte[1] = 0x01;

p.posbyte[2] = 0x01;

p.posbyte[3] = 0x05;

 

也就是说共同体所有的成员共享内存,当其中一个成员被赋值,另一个成员相应的值也跟着改变。

posted @ 2012-11-15 21:35  枫部落  阅读(404)  评论(0编辑  收藏  举报
点击这里给我发消息