c语言中的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 06:15:44
extern volatile near unsigned char PORTA;
extern volatile near union {
struct {
unsigned RA0:1;
unsigned RA1:1;
unsigned RA2:1;
unsigned RA3:1;
unsigned RA4:1;
unsigned RA5:1;
unsigned RA6:1;
unsigned RA7:1;
};
struct {
unsigned AN0:1;
unsigned AN1:1;
unsigned AN2:1;
unsigned AN3:1;
unsigned T0CKI:1;
unsigned AN4:1;
unsigned OSC2:1;
unsigned OSC1:1;
};
}
中unsigned OSC2:1 后边的xxxx :1是什么意思?

C语言允许在一个结构体里以位为单位来指定其成员所占内存长度,这种成员称为“位段”或“位域”。
定义就是像你这样,
struct data
{
unsigned a:n;//定义a占n个位
...
};
unsigned OSC2:1表示OSC2占1个位(bit)