gpt4 book ai didi

c - 传递结构成员名称以在 C 中运行?

转载 作者:太空狗 更新时间:2023-10-29 15:25:51 25 4
gpt4 key购买 nike

有没有简单的方法可以将结构成员的名称传递给 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>);
}

最佳答案

不确定这是否正是您正在寻找的,但这里有一个使用 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;

t.x = 5;
t.y = 10;

example(&t, offsetof(struct Test, y));
}

关于c - 传递结构成员名称以在 C 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com