zl程序教程

您现在的位置是:首页 >  其他

当前栏目

c语言中位字段与结构联合的组合使用详解

语言 使用 详解 结构 联合 组合 中位
2023-06-13 09:14:53 时间

举例:
===================================================

复制代码代码如下:

/**INITRM-Initializationofinternalrampositionregister;0x00000010**/

typedefunion{

  byteByte;

  struct{

     byteRAMHAL:1;

     byte:1;

     byte:1;

     byteRAM11:1;

     byteRAM12:1;

     byteRAM13:1;

     byteRAM14:1;

     byteRAM15:1;

  }Bits;

  struct{

     byte:1;

     byte:1;

     byte:1;

     bytegrpRAM_11:5;

  }MergedBits;

}INITRMSTR;


那么赋值方式就有三种,比如直接给INITRMSTR赋值

INITRMSTR=0xEF;

也可以位字段赋值

INITRMSTR.Bits.RAM15=1;

也可以多位的位字段赋值

INITRMSTR.MergedBits.grpRAM_11=26

(26是十进制,转换成二进制是11010,直接表示RAM_11=0,RAM_12=1,RAM_13=0,RAM_14=1,RAM_15=1)

需要注意的是,在二进制中顺序是从右向左,在这个结构体中是从上向下.