do{} while(0) 的意义和用法

1.辅助定义复杂的宏,避免引用的时候出错。

  例如:#define DOSOMETHING() \

              fool1(); \

              fool2(); \

  如果在调用的时候写:

      if (a > 0)

        DOSOMETHING()

  展开之后是: 

      if (a > 0)

        fool1();

      fool2();

  所以,采用do {} while(0) , 来进行宏的定义。

2.避免使用goto对程序流进行统一的控制。

3.避免空宏引起的warning

4.定义一个单独的函数快来实现复杂的操作。

posted @ 2016-04-15 11:11  杨智帆  阅读(272)  评论(0编辑  收藏  举报