我们在struct中有一个指针时,是container_of宏

时间:2014-10-30 19:25:43

标签: c linux pointers struct kernel

如果我有:

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)

但这不能肯定,我无法理解为什么。 有人可以帮我弄这个吗?有什么东西我不见了吗?

1 个答案:

答案 0 :(得分:1)

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

相关问题