免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5514 | 回复: 22

请教大牛们一个关于宏定义中while(0) 这种格式是什么意思 [复制链接]

论坛徽章:
0
发表于 2010-07-26 16:17 |显示全部楼层
如这种形式: 
  1. #define ut_a(EXPR) do {                                         \
  2.         if (UT_DBG_FAIL(EXPR)) {                                \
  3.                 ut_dbg_assertion_failed(#EXPR,                  \
  4.                                 __FILE__, (ulint) __LINE__);    \
  5.                 UT_DBG_PANIC;                                   \
  6.         }                                                       \
  7.         UT_DBG_STOP;                                            \
  8. } while (0)
复制代码
为什么要这样定义呢?

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
发表于 2010-07-26 16:20 |显示全部楼层
这个比较月经, 每月出现一次

论坛徽章:
0
发表于 2010-07-26 16:21 |显示全部楼层
如果不想用goto,使用
do
{
    if ( true )
        break;
}while(0)

是个好办法。。。

论坛徽章:
0
发表于 2010-07-26 16:22 |显示全部楼层
封装

论坛徽章:
0
发表于 2010-07-26 16:23 |显示全部楼层
本帖最后由 zhangsuozhu 于 2010-07-26 18:13 编辑

为了让宏象函数一样       while(xxx){ut_a(zzz);} 或 while(xxx)ut_a(zzz); if(xxx)ut_a(zzz);else xxxx; 都能用

论坛徽章:
0
发表于 2010-07-26 16:32 |显示全部楼层
谢谢各位大牛。

顺便在此BS一下那个用生殖系统思考问题的大牛。
这个比较月经, 每月出现一次
zylthinking 发表于 2010-07-26 16:20

论坛徽章:
0
发表于 2010-07-26 16:38 |显示全部楼层
谢谢各位大牛。

顺便在此BS一下那个用生殖系统思考问题的大牛。
Coolriver 发表于 2010-07-26 16:32



    你误会他啦,他的意思是说这样的问题每个月都会有几个人提问。网上管这个叫月经贴。呵呵

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
发表于 2010-07-26 16:40 |显示全部楼层
靠。。。。。。。。无语了。。。。。。。。。。。

论坛徽章:
0
发表于 2010-07-26 17:32 |显示全部楼层
确实是月经,看到过几次了。

论坛徽章:
0
发表于 2010-07-26 17:37 |显示全部楼层
刚才
百度了下关键词
while(0) 宏
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP