函数式宏定义用do...while(0)的好处

函数式宏定义经常写成这样:
<pre lang="c" escaped="true">
#define device_init_wakeup(dev, val) \
do { \
device_can_wakeup(dev) = !!(val); \
device_set_wakeup_enable(dev, val); \
}while(0)

</pre>

为什么要用do {...} while(0) 括起来呢?不括起来会有什么问题呢?

 

posted on 2015-11-21 17:16  liweilijie  阅读(505)  评论(0编辑  收藏  举报

导航