#include #include #include struct { unsigned char a : 2; unsigned char : 1; // 占位符 unsigned char b : 2; unsigned char : 1; // 占位符 unsigned char c : 2; } REG; int main() { REG.a = 3; REG.b = 1; REG.c = 2; printf("%ld B\n", sizeof(REG)); // 1 B char reg = *((char *)®); // 原理: 位段的内存存储是从低位到高位的 printf("%#hhx\n", reg); // 0x11 // 打印二进制 printf("reg = 0b"); for (int i = 7; i >= 0; i--) { printf("%d", (reg >> i) & 1); } printf("\n"); return 0; }