我正在写一个C程序。我想要一个可以作为字符访问的变量,但我也可以访问其特定位。我想我可以使用这样的工会......
typedef union
{
unsigned char status;
bit bits[8];
}DeviceStatus;
但编译器不喜欢这样。显然你不能在结构中使用位。
那么我能做什么呢?
当然,但你实际上想使用一个结构来定义这样的位
typedef union
{
struct
{
unsigned char bit1 : 1;
unsigned char bit2 : 1;
unsigned char bit3 : 1;
unsigned char bit4 : 1;
unsigned char bit5 : 1;
unsigned char bit6 : 1;
unsigned char bit7 : 1;
unsigned char bit8 : 1;
}u;
unsigned char status;
}DeviceStatus;
然后您可以访问DeviceStatus ds;
你可以访问ds.u.bit1
。此外,某些编译器实际上允许您在联合中拥有匿名结构,这样您就可以访问ds.bit1
如果你从 typedef 中省略 u 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)