为了账号安全,请及时绑定邮箱和手机立即绑定

do{}while(0) 的作用

do{}while(0) 的作用

潇潇雨雨 2019-04-13 08:45:28
在cocos2d-x源码中,有大量的这种do{}while(0)的用法,例如这个:do{CCImage*pImage=newCCImage();CC_BREAK_IF(NULL==pImage);bRet=pImage->initWithString(text,(int)dimensions.width,(int)dimensions.height,eAlign,fontName,(int)fontSize);CC_BREAK_IF(!bRet);bRet=initWithImage(pImage);CC_SAFE_RELEASE(pImage);}while(0);根据语意,这样写至少保证do后面的代码块执行一次。这样写的意义是什么?为什么不直接使用块,而一定要加上dowhile循环?
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

发现这个问题一搜一大堆哦,题主确定不是SF的托么,哈哈,开个玩笑
有时候只是为了代码分块,比仅仅使用{}更直观些。
当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于dowhile循环中,则能用break达到这个目的。
变形的goto,有些公司不让用goto。
这样做也可以是兼容各种编译器。
为了宏展开的时候不会出错。如果直接放在花括号里会出错的
这篇文章很详细哦
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信