设为首页 加入收藏

TOP

Linux/kernel.h中强大的container_of宏
2014-11-24 01:37:44 来源: 作者: 【 】 浏览:2
Tags:Linux/kernel.h 强大 container_of

位于Linux/kernel.h中强大的container_of宏

#define offsetof(s,m) (size_t)&(((s *)0)->m)
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})

简单应用:
struct A_t
{
char a;
char b;
int c;
};
struct B_t
{
char a;
int *c;
};
A_t A;
B_t B;
A_t *A_add;
A.c = (int *)malloc(sizeof(int),1);
B.c = &A.c;
dev = container_of(inode->i_cdev, struct scullc_dev, cdev);
A_add = container_of(B.c,struct A_t,c);


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++基础:编译器的选项设置 下一篇Linux下为PHP添加扩展库

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: