直接写例子
typedef struct {
unsigned int a:3;
unsigned int b:9;
unsigned int c:12;
unsigned int d:8;
}CTRL_TAB;
int main(int argc, char* argv[])
{
CTRL_TAB tab;
tab.a = 0x1;
tab.b = 0xff;
tab.c = 0;
tab.d = 0x5a;
printf("%08x\n", tab);
return 0;
}
最近仿真,构造数据,总是跟寄存器打交道,新学的这个用法,记录一下。
这个结构体既有结构体的特点,可以访问成员变量,也可以当成一个整体来用,就是在printf里。但是他丢掉了整形变量的一些基本特点,就是不能进行算术运算。可以这样处理,用指针。
*(unsigned int*)&tab,这样就变成一个无符号整形变量了。
文章评论(0条评论)
登录后参与讨论