I have a struct of 2-bit bitfields like this:
struct MyStruct {
unsigned __int32 info0 : 2;
unsigned __int32 info1 : 2;
unsigned __int32 info2 : 2;
...
unsigned __int32 info59 : 2;
};
And another like this going up to 120... Is there a way to write and address them as an array?
If you can't use Paul R's answer for whatever reason, you can always use a custom accessor with a standard array :
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.
(You may need to check the logic here, I haven't tested it.)