漂亮,多谢! 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 > >