Cの関数に構造体メンバの名前を渡す簡単な方法はありますか?私がしたい場合たとえば、この現象が発生:Cで構造メンバーNAMEを機能させるには?
(私はちょうど質問を説明するためにそれを書いた、コードが間違っている知っている)
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>);
}
ではなく:ここ
offsetof
を使用してかなり近いソリューションです名。 – user2357112概念的にはhttp://stackoverflow.com/q/13653024/2564301と同じですか? – usr2564301
関数の代わりにマクロを使用できます。これは、より複雑な関数のためにすばやく不思議になるかもしれませんが、必要に応じて '#define example(x、member)printf("%d \ n "、x.member)'を実行できます。しかし、これは、型の安全性(および他のもの)を失うことを意味します。 – neoaggelos