打印

结构体与共用体的疑问

[复制链接]
1705|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

粉丝