1.辅助定义复杂的宏,避免引用的时候出错。
例如:#define DOSOMETHING()
fool1();
fool2();
如果在调用的时候写:
if (a > 0)
DOSOMETHING()
展开之后是:
if (a > 0)
fool1();
fool2();
所以,采用do {} while(0) , 来进行宏的定义。
2.避免使用goto对程序流进行统一的控制。
3.避免空宏引起的warning
4.定义一个单独的函数快来实现复杂的操作。
1.辅助定义复杂的宏,避免引用的时候出错。
例如:#define DOSOMETHING()
fool1();
fool2();
如果在调用的时候写:
if (a > 0)
DOSOMETHING()
展开之后是:
if (a > 0)
fool1();
fool2();
所以,采用do {} while(0) , 来进行宏的定义。
2.避免使用goto对程序流进行统一的控制。
3.避免空宏引起的warning
4.定义一个单独的函数快来实现复杂的操作。