我理解你不能有指向位字段的指针,因为指针只能区分字节级别的地址,而不能区分位级别的地址。对位字段的引用也是不允许的。是否还有其他方法能够间接地引用位字段的成员?理想情况下,我希望能够使用类似于下面的mys1array行的数组语法来访问它们。我知道引用数组是不合法的,但也许有人在这方面有一些智慧的知识,能够实现类似的目标。
typedef struct{
unsigned short a : 5;
unsigned short b : 3;
unsigned short c : 8;
}myStruct;
class myClass{
public:
myStruct s1;
//unsigned short &mys1array[] = {&s1.a, &s1.b ,&s1.c};
};
std::function<unsigned int()> getters[] = {[&](){ return s1.a; }, [&](){ return s1.b; }, [&](){ return s1.c; }}
… (对于setters也类似) - Jarod42