gpt4 book ai didi

当我们在结构中有一个指针时,container_of 宏

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:22 26 4
gpt4 key购买 nike

如果我有:

struct my_container {
int x;
struct some_struct *ss;
}

如果我有指针 ss,通过它我可以访问 some_struct 中的成员,我应该能够通过执行以下操作来访问 my_container 对吗?这就是我正在做的:

struct my_container *my_c;
my_c = container_of(&ss, struct my_container, ss)

但这肯定行不通,我无法理解为什么。有人可以帮我弄这个吗?有什么我想念的吗?

最佳答案

如果你只有一个指向 some_struct 的指针(即如果你只是struct some_struct *ss;),你不能使用 container_of 宏以这种方式,因为 &ss 只会评估某个变量的地址,不是 my_container 的地址.要正确使用它,您需要一个指向 some_struct 的指针(即 struct some_struct **pss)。

关于当我们在结构中有一个指针时,container_of 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661643/

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