其他分享
首页 > 其他分享> > C 2位位域阵列可能吗?

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