C 2位位域阵列可能吗?
作者:互联网
我有一个像这样的2位位域结构:
struct MyStruct {
unsigned __int32 info0 : 2;
unsigned __int32 info1 : 2;
unsigned __int32 info2 : 2;
...
unsigned __int32 info59 : 2;
};
另一个像这样的高达120 …是否有办法将它们作为数组写入并解决?
解决方法:
如果由于某种原因无法使用Paul R的答案,您可以随时使用带有标准数组的自定义访问器:
static unsigned __int8 infos[30]; // 240 bits allocated
unsigned __int8 getInfo( unsigned short id_num )
{
return (infos[id_num/4] >> ((2*id_num) % 8) ) & 0x3;
}
// setInfo left as an exercise.
(您可能需要检查逻辑,我还没有测试过.)
标签:bit-fields,c 来源: https://codeday.me/bug/20190825/1714059.html