Gibt es eine einfache Möglichkeit, den Namen eines Strukturelements an eine Funktion in C übergeben? Zum Beispiel, wenn ich dies verwirklichen will:Übergeben Sie ein Strukturelement NAME, um in C zu funktionieren?
(ich weiß, der Code falsch ist, ich es einfach geschrieben, die Frage zu erklären)
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>);
}
Sie das Element verwenden könnte [offset] (http://man7.org/linux/man-pages/man3/offsetof.3.html), aber nicht die Name. – user2357112
Konzeptionell das gleiche wie http://StackOverflow.com/q/13653024/2564301, richtig? – usr2564301
Sie könnten ein Makro anstelle einer Funktion verwenden. Dies könnte für eine komplexere Funktion schnell komisch werden, aber für Ihre Bedürfnisse könnten Sie '#define example (x, member) printf ("% d \ n ", x.member)' verwenden. Aber das bedeutet, dass Sie die Typsicherheit (und einige andere Dinge) verlieren. – neoaggelos