struct
(顺便提一下,它包含位域,但您不必在意):struct Element {
unsigned int a1 : 1;
unsigned int a2 : 1;
...
unsigned int an : 1;
};
我希望以便捷的方式访问第i个成员,这与it技术有关。我们来看一下检索解决方案。
我想出了这个函数:
int getval(struct Element *ep, int n)
{
int val;
switch(n) {
case 1: val = ep->a1; break;
case 2: val = ep->a2; break;
...
case n: val = ep->an; break;
}
return val;
}
我猜想有一个更简单的解决方案,可能类似于数组访问方式。
我尝试做了这样的事情:
#define getval(s,n) s.a##n
但是预期的结果并没有得到实现。
有更好的解决方案吗?