Есть ли какие-либо простые способы передать имя элемента struct функции в C? Например, если я хочу, чтобы это произошло:Передача элемента структуры NAME для работы в 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