将结构成员NAME传递给C中的函数?

有没有简单的方法将结构成员的名称传递给C中的函数? 例如,如果我想要实现这一点:

(我知道代码不正确,我只是写它来解释这个问题)

struct Test { int x; int y; }; int main() { struct Test t; tx = 5; ty = 10; example(t, ); } void example(struct Test t, ) { printf("%d", t.); } 

不确定这是否正是您正在寻找的,但这是一个使用offsetof的非常接近的解决方案:

 struct Test { int x; int y; }; void example(void *base, size_t offset) { int *adr; adr = (int*)((char*)base + offset); printf("%d\n", *adr); } int main(int argc, char **argv) { struct Test t; tx = 5; ty = 10; example(&t, offsetof(struct Test, y)); }