// 共用体和结构体结合使用 // 可以解决不同类型的数据在内存中的存储问题 #include struct REG { unsigned char a : 1; // 低位 unsigned char b : 1; unsigned char c : 1; unsigned char d : 1; unsigned char e : 1; unsigned char f : 1; unsigned char g : 1; unsigned char h : 1; // 高位 }; union REG_UNI { struct REG reg; unsigned char ch; }; int main() { union REG_UNI reg1 = {{1, 0, 0, 0, 1, 0, 0, 0}}; // reg1.ch 可以把每一位的值都取出来,但是不能修改,读取顺序是从低位到高位,倒序读取 0b00001001 printf("%#x\n", reg1.ch); // 0x11 return 0; }