结构体后缀 :1
typedef union {
struct {
unsigned long P0:1;
unsigned long P1:1;
unsigned long P2:1;
unsigned long P3:1;
unsigned long P4:1;
unsigned long P5:1;
unsigned long P6:1;
unsigned long P7:1;
unsigned long P8:1;
unsigned long P9:1;
unsigned long P10:1;
unsigned long P11:1;
unsigned long P12:1;
unsigned long P13:1;
unsigned long P14:1;
unsigned long P15:1;
unsigned long P16:1;
unsigned long P17:1;
unsigned long P18:1;
unsigned long P19:1;
unsigned long P20:1;
unsigned long P21:1;
unsigned long P22:1;
unsigned long P23:1;
unsigned long P24:1;
unsigned long P25:1;
unsigned long P26:1;
unsigned long P27:1;
unsigned long P28:1;
unsigned long P29:1;
unsigned long P30:1;
unsigned long P31:1;
}BIT;
unsigned long WORD;
}Reg_GPIO_PORT;
定义一个联合体来描述32位寄存器。
对于其中的BIT结构体,可以看到P0:1这样一个操作。
这是位域操作的表示方法,也就是说后面加上“:1”的意思是这个成员的大小占所定义类型的1 bit,“:2”占2 bit,依次类推。当然大小不能超过所定义类型包含的总bit数。