位域,是结构体的一种形式。谭老的C语言教材里讲的有。
strcut regChar
{
char a0:2;
char b0:1;
char reserved:5;
}
就是把一个char再分成了3部分,b0只占8位中的其中一位,即第3位。
位域在嵌入式编程中用的非常广泛,通常是用来定义与硬件寄存器相对应的结构体时用到。硬件寄存器(比如是32位),可能0~8位代表一个标志,9~15位又代表一个标志,所以定义一个与其结构一致的结构体,来方便对硬件寄存器的读写。
char b0:1;
就是声明一个变量 叫做 b0:1
" b0:1 ” 只是一个变量而已啊
给b0赋值为1 表示为: char b0 = 1;