结构体与共用体的疑问

[复制链接]
2255|3
 楼主| happyrun 发表于 2008-6-21 11:43 | 显示全部楼层 |阅读模式
 在keil中调试,想把变量char_a与bit0,bit1,bit2共同占用一段地址,于是使用到共用体与结构体。希望共用体占用8位地址,但实际上共用体占用16位地址,非常不明白?

 union
  {
         struct 
    {
      unsigned bit0:1;
      unsigned bit1:1;
      unsigned bit2:1;
           unsigned:5;
    }struct_char_a;
    uchar char_a;
  }union_char_a;
 楼主| happyrun 发表于 2008-6-21 11:44 | 显示全部楼层

在MPLAB上用这种定义方式可以

桂电飞天鼠 发表于 2008-6-21 11:55 | 显示全部楼层

编译器的问题

      unsigned bit0:1;
      unsigned bit1:1;
      unsigned bit2:1;
      unsigned:5;

改为unsigned char型即可,因为KEIL默认是使用16位的
 楼主| happyrun 发表于 2008-6-21 12:14 | 显示全部楼层

多谢 桂电飞天鼠 你的方法很有效

您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部