24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 371  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料工程322分 +6 哈哈哈吼吼吼哈 2026-04-01 6/300 2026-04-02 06:11 by 286640313
[考研] 385分 生物学(071000)求调剂 +3 qf626 2026-04-01 3/150 2026-04-01 23:57 by 钰璞
[考研] 生物与医药考研调剂 +5 铁憨憨123425 2026-03-31 5/250 2026-04-01 18:01 by syh9288
[考研] 311求调剂 +11 蓝月亮亮 2026-03-30 11/550 2026-04-01 16:33 by 七度不信任
[考研] 0710生物学考研调剂 +3 李多米lee. 2026-03-27 4/200 2026-04-01 16:21 by zzchen2000
[考研] 生物学 296 求调剂 +9 朵朵- 2026-03-26 11/550 2026-04-01 14:44 by 求调剂zz
[考研] 求调剂 +4 DADA怪 2026-03-31 4/200 2026-04-01 14:30 by ZXlzxl0425
[论文投稿] chinese chemical letters英文版投稿求助 120+4 Yishengeryi 2026-03-30 5/250 2026-04-01 14:11 by 陆小果画大饼
[考研] 322求调剂 +8 三水sss 2026-04-01 8/400 2026-04-01 10:19 by 唐沐儿
[考研] 土木304求调剂 +5 兔突突突, 2026-03-31 6/300 2026-04-01 09:37 by JourneyLucky
[考研] 一志愿a区211,085601-307分求调剂 +10 党嘉豪 2026-03-31 23/1150 2026-03-31 18:44 by JourneyLucky
[考研] 346求调剂 一志愿070303有机化学 +11 萝卜炖青菜 2026-03-28 12/600 2026-03-31 17:54 by xhai2011
[考研] 材料工程专硕求调剂 +10 hyl3153942 2026-03-29 10/500 2026-03-31 16:31 by hypershenger
[考研] 353求调剂 +3 江上枫_26 2026-03-28 3/150 2026-03-31 15:53 by jp9609
[考研] 085601 329分调剂 +6 yzsa12 2026-03-31 6/300 2026-03-31 15:23 by yanflower7133
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-31 4/200 2026-03-31 11:56 by jp9609
[考研] 296求调剂 +10 彼岸t 2026-03-29 10/500 2026-03-30 10:50 by 探123
[考研] 298求调剂 +3 种圣赐 2026-03-29 3/150 2026-03-29 12:06 by longlotian
[考研] 330一志愿中国海洋大学 化学工程 085602 有读博意愿 求调剂 +3 wywy.. 2026-03-27 4/200 2026-03-28 03:32 by fmesaito
[考研] 275求调剂 +10 jjjjjjjjjjl 2026-03-27 10/500 2026-03-27 23:47 by barnett0632
信息提示
请填处理意见