[allguysindni] Re: [allguysindni] Re: [allguysindni] 请教 宏定义 返回值

  • From: jun fang <apifan@xxxxxxxxx>
  • To: allguysindni@xxxxxxxxxxxxx
  • Date: Mon, 1 Nov 2010 18:01:41 +0800

不过据说好像是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
>>
>>
>

Other related posts: