24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 370  |  回复: 1

sudo

超级版主

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!

[交流] 版面冷清,放一个阅读理解题吧 已有1人参与

欢迎大家来随意吐槽......
CODE:
#include                                                          

#define offsetof(type, mem) ((size_t) &( (type *)0 )->mem)

#define container_of(ptr, type, mem) (\
                        (type *)((char*)(ptr) - offsetof(type,mem)))

typedef int BaseType;

struct T{
        BaseType base;
        void (*show)();
};

void show1(){
        printf("This is 1.\n");
}

void show2(){
        printf("This is 2.\n");
}

void Tshow(BaseType* base){
        container_of(base, struct T, base)->show();
}

int main(){
        struct T a, b;
       
        BaseType *pa, *pb;

        a.base = 1; a.show = show1;
        b.base = 2; b.show = show2;

        pa = &a.base;
        pb = &b.base;

        Tshow(pa);
        Tshow(pb);

        return 0;
}

【题一】简述offsetof和container_of两个宏的作用
【题二】原版的container_of宏是这样的(有一些gcc的扩展语法):
CODE:
#define container_of(ptr, type, mem) ( { \
        const typeof( ((type*)0)->mem )* __ptr = (ptr);\
        (type *)( (char*)__ptr - offsetof(type,mem)); \
        })

请问多出来的这句const typeof( ((type*)0)->mem )* __ptr = (ptr);是什么用意?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

兑换贵宾

优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!优秀!!有木有!!!


小木虫: 金币+0.5, 给个红包,谢谢回帖
CODE:
(size_t) &( (type *)0 )->mem

这是神马意思 好好解释一下那个0
2楼2012-04-28 11:02:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sudo 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿北交大材料工程总分358 +6 cs0106 2026-04-01 7/350 2026-04-01 17:40 by JYD2011
[考研] 材料专业调剂 +5 啦啦啦哭 2026-03-31 6/300 2026-04-01 16:48 by JourneyLucky
[考研] 295材料工程专硕求调剂 +13 1428151015 2026-03-27 13/650 2026-04-01 15:37 by 西松屋地铁
[论文投稿] chinese chemical letters英文版投稿求助 120+4 Yishengeryi 2026-03-30 5/250 2026-04-01 14:11 by 陆小果画大饼
[考研] 304求调剂 +10 素年祭语 2026-03-31 13/650 2026-04-01 11:17 by 逆水乘风
[考研] 070300化学专业279调剂 +10 哈哈哈^_^ 2026-03-31 10/500 2026-03-31 23:13 by liu823948201
[考研] 一志愿华东理工大学,080500学硕,317分,求调剂 +9 s1145 2026-03-31 9/450 2026-03-31 18:47 by JourneyLucky
[考研] 考研调剂求助 +7 13287130938 2026-03-31 7/350 2026-03-31 16:39 by 690616278
[考研] 289求调剂 +3 Acesczlo 2026-03-29 4/200 2026-03-31 14:48 by 热情沙漠
[考研] 一志愿哈尔滨工业大学材料与化工方向336分 +13 辰沐5211314 2026-03-26 13/650 2026-03-31 14:37 by 记事本2026
[考研] 262求调剂 +7 ZZ..000 2026-03-30 8/400 2026-03-31 10:05 by cal0306
[考研] 一志愿中海洋320化学工程与技术学硕求调剂 +8 披星河 2026-03-30 8/400 2026-03-31 08:53 by lbsjt
[考研] 08工科求调剂286 +5 tgs_001 2026-03-28 5/250 2026-03-31 08:18 by 一只好果子?
[考研] 083000环境科学与工程调剂,总分281 +4 橙子(胜意) 2026-03-30 4/200 2026-03-31 00:44 by Linzejun
[考研] 本科211总分289,08工学真心求调剂 +3 utopiaE 2026-03-30 3/150 2026-03-30 23:42 by ms629
[考研] 材料专硕 085600求调剂 +7 BBQ233 2026-03-30 7/350 2026-03-30 17:44 by oooqiao
[考研] 298求调剂 +3 种圣赐 2026-03-29 3/150 2026-03-29 12:06 by longlotian
[考研] 0703化学338求调剂! +6 Zuhui0306 2026-03-26 7/350 2026-03-27 10:35 by shangxh
[考研] 324求调剂 +5 hanamiko 2026-03-26 5/250 2026-03-27 10:33 by wangjy2002
[考研] 085602化学工程求调剂。 +4 平乐乐乐 2026-03-26 4/200 2026-03-26 17:57 by fmesaito
信息提示
请填处理意见