Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175776
  • 博文数量: 27
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 618
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-15 09:12
文章分类
文章存档

2014年(17)

2013年(10)

我的朋友

分类: C/C++

2013-11-21 11:56:01

do{......} while{0} 主要使用在宏定义中,例子如下:

#define SAFE_FREE(p) do { free(p); p= NULL;} while(0)

if (NULL != p)
    SAFE_FREE(p);
else
    ... //do something

如果在宏定义中去掉do{......} while{0}会存在两个问题:
1. if 分支后有两个语句,导致else分支没有对应的if ,会编译失败
2. 假设没有else分支,则SAFE_FREE不会执行


阅读(1174) | 评论(2) | 转发(1) |
1

上一篇:没有了

下一篇:USB电池充电基础

给主人留下些什么吧!~~

c语言达人2013-11-21 12:54:43

歹戈木木夕:帅哥~~么么 学习啦 汪汪汪汪

一猜就是汪汪汪啊啊

回复 | 举报

歹戈木木夕2013-11-21 12:00:06

帅哥~~么么 学习啦 汪汪汪汪