注册 登录
编程论坛 C语言论坛

共同体内含有结构体成员,结构体成员 --> 变量 :常数; 不懂什么语法,求指教?

瓯旸臻骅 发布于 2022-01-31 01:17, 1886 次点击
/*变量类型定义*/
typedef union
{
  unsigned char B08;
  struct
  {
    unsigned char bit0:1;
    unsigned char bit1:1;
    unsigned char bit2:1;
    unsigned char bit3:1;
    unsigned char bit4:1;
    unsigned char bit5:1;
    unsigned char bit6:1;
    unsigned char bit7:1;
  }Bit;
}B08_Bit;
这个共同体B08_Bit和其成员 机构体 Bit是什么关系
尤其是这Bit结构体是怎么使用的
请给出示例
5 回复
#2
lin51616782022-01-31 02:25
位域
#3
纯蓝之刃2022-01-31 09:19
B08_Bit 是一个联合体变量。这个变量地址内的数据可以通过B08或者bit0-bit07取出。B08取出的是B08_Bit 变量所在内存(也就是一个字节长的)的数据,bit0取出的是B08_Bit 变量所在内存(也就是一个字节长的)中的一位的数据。
#4
瓯旸臻骅2022-02-01 18:56
回复 3楼 纯蓝之刃
主要是这个 结构体:
 struct
  {
    unsigned char bit0:1;
    unsigned char bit1:1;
    unsigned char bit2:1;
    unsigned char bit3:1;
    unsigned char bit4:1;
    unsigned char bit5:1;
    unsigned char bit6:1;
    unsigned char bit7:1;
  }Bit;
里面的成员变量不懂什么意思。
假设我声明一个变量
Bit Var1 ;
Var1.bit3 是不是个bool量,只能= 0 或者 = 1?
#5
吹水佬2022-02-01 20:49
bit0 ~ 7 成员分别分配1个位
#6
szchen20182022-02-19 11:07
struct
  {
    unsigned char bit0:1;
    unsigned char bit1:1;
    unsigned char bit2:1;
    unsigned char bit3:1;
    unsigned char bit4:1;
    unsigned char bit5:1;
    unsigned char bit6:1;
    unsigned char bit7:1;
  }Bit;
里面的成员变量不懂什么意思。
假设我声明一个变量
Bit Var1 ;
Var1.bit3 是不是个bool量,只能= 0 或者 = 1?
-->是的,只能0或1。
-->里面的成员就是Bit拆成bit0~bit7 8位,方便单独设置某一位。
比如Bit 是0000 0000
Var1.bit0 = 1,就是Bit 0000 0001
Var1.bit1 = 1,就是Bit 0000 0010
Var1.bit2 = 1,就是Bit 0000 0100
Var1.bit3 = 1,就是Bit 0000 1000
1