Chinaunix首页 | 论坛 | 博客
  • 博客访问: 232707
  • 博文数量: 39
  • 博客积分: 420
  • 博客等级: 下士
  • 技术积分: 457
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-01 10:22
文章分类

全部博文(39)

文章存档

2015年(15)

2014年(11)

2013年(1)

2012年(2)

2011年(1)

2010年(9)

我的朋友

分类: C/C++

2015-01-29 10:43:29

如以下结构体:

点击(此处)折叠或打开

  1. struct aaaaa {
  2.     union {
  3.         BYTE lun:2;    /* sensor owner lun */
  4.         BYTE reserved:2;
  5.         BYTE channel:4;    /* channel number */
  6.     }keys;
  7. };
就说明keys占了一个字节,其中lun占了keys的低两位,reserver占了keys的低两位,channel占了keys的低四位。
如下测试代码:

点击(此处)折叠或打开

  1. int main()
  2. {    
  3.     aaaaa c;
  4.     c.keys.channel=0x00;
  5.     c.keys.lun=0x00;
  6.     c.keys.reserved=0x00;
  7.     BYTE d=10;
  8.     memcpy(&c.keys,&d,1);
  9.     printf("%02X,%02X,%02X\n",c.keys.lun,c.keys.reserved,c.keys.channel);
  10.     return 0;
  11. }
输出结果为:


阅读(1277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~