不过据说好像是gcc特有 2010/11/1 jun fang <apifan@xxxxxxxxx> > 顶 > > 2010/11/1 seaturn <haiyue.wang@xxxxxxxxx> > > 参考: >> #define container_of(ptr, type, member) ({ \ >> const typeof( ((type *)0)->member ) *__mptr = (ptr); \ >> (type *)( (char *)__mptr - offsetof(type,member) );}) >> >> do while 不行! >> >> >> >> >> 在 2010年11月1日 下午5:46,Wugang Qiu <qiuwugang@xxxxxxxxx>写道: >> >>> 怎么用宏定义 返回 一个返回值(宏包含多条语句)? 以前看到过这样的代码,不过想不起来了,好像就是利用{}的最后 一个表达式的值 就是 {}定义体 >>> 的值这个特点; >>> >>> >>> #define xxx(var) do{ \ >>> int a; \ >>> a=func(var); \ >>> }while(0) >>> >> >> >> >> -- >> Best Regards, >> Haiyue >> >> >