是否有任何简单的方法将结构成员的名称传递给C中的函数?例如,如果我要做到这一点:传递一个结构成员名称以在C中运行?
(我知道的代码是不正确的,我只是写它来解释这个问题)
struct Test
{
int x;
int y;
};
int main()
{
struct Test t;
t.x = 5;
t.y = 10;
example(t, <MEMBER NAME>);
}
void example(struct Test t, <MEMBER NAME>)
{
printf("%d", t.<MEMBER NAME>);
}
你可以使用成员[偏移](http://man7.org/linux/man-pages/man3/offsetof.3.html),而不是名称。 – user2357112
概念上与http://stackoverflow.com/q/13653024/2564301相同,对吧? – usr2564301
您可以使用宏而不是函数。这对于一个更复杂的函数可能很快就会变得很奇怪,但为了您的需要,您可以执行'#define example(x,member)printf(“%d \ n”,x.member)''。但这意味着你会失去类型安全(以及其他一些事情)。 – neoaggelos