container_of

container_of(ptr, type, member)

ptr为type中的member,container_of能够取出type的指针。


例:


struct sample {

    int member;

    char* name;

    int version;

};


struct sample smp;

smp.member = 10;

smp.name = "Hello!";

smp.version = sizeof(struct sample);


struct sample sout;


int fn = smp.member;

sout = container_of(&fn, struct sample, member);


这样就能取到smp的结构体指针,从而也就可以有:

sout.member 为10;

sout.name 为 Hello!

sout.version 为12。


container_of一般之在内核空间使用。

你可能感兴趣的:(container_of)