摘要:
为了看起来更清晰,这里用一个简单点的宏来演示:#define SAFE_DELETE(p) do{ delete p; p = NULL} while(0)假设这里去掉do...while(0),#define SAFE_DELETE(p) delete p; p = NULL;那么以下代码:if(NULL != p) SAFE_DELETE(p)else ...do sth...就有两个问题,1) 因为if分支后有两个语句,else分支没有对应的if,编译失败2) 假设没有else, SAFE_DELETE中的第二个语句无论if测试是否通过,会永远执行。你可能发现,为了避免这两个问题,我不一 阅读全文
posted @ 2012-02-21 10:12
super119
阅读(293)
评论(0)
推荐(0)