这段代码中do-while的含义

纳雷克

Nextpeer教程中,您可以看到以下代码:

CCScene* GameLayer::scene() {
    CCScene * scene = NULL;
    do {
        // 'scene' is an autorelease object
        scene = CCScene::create();
        CC_BREAK_IF(! scene);

        // 'layer' is an autorelease object
        GameLayer *layer = GameLayer::create();
        CC_BREAK_IF(! layer);

        // add layer as a child to scene
        scene->addChild(layer);
    } while (0);

    // return the scene
    return scene;
}

do-while这段代码block的含义是什么

Radiodef

CC_BREAK_IF是的宏if(condition) break(编辑:我已经确认。)

这是用于结构化goto的惯用法:

do {
    if (!condition0) break;
    action0();
    if (!condition1) break;
    action1();
} while(0);

do...while(0); 存在只是为了让break语句跳过部分代码。

这类似于:

if (!condition0) goto end;
action0();
if (!condition1) goto end;
action1();
end:

除非它避免使用goto。

使用这些惯用法之一是为了避免嵌套if

if (condition0) {
    action0();
    if (condition1) {
        action1();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这段代码中$的含义是什么?

来自分类Dev

这段代码`start = + start ||的含义是什么?0;`在JavaScript中?

来自分类Dev

在这段代码中如何避免“while (true)”?

来自分类Dev

为什么while循环在这段代码中不起作用?

来自分类Dev

我不明白这段代码的含义,你能帮我吗?

来自分类Dev

C代码段的含义

来自分类Dev

代码示例的含义

来自分类Dev

SAS代码含义解读

来自分类Dev

Segmentation Fault中“代码”的含义是什么

来自分类Dev

在此scala代码中_的含义是什么?

来自分类Dev

NSURLErrorDomain中的代码的含义是什么?

来自分类Dev

通用代码段中ParameterizedType的含义

来自分类Dev

以下代码中\ +的含义是什么

来自分类Dev

通用代码段中ParameterizedType的含义

来自分类Dev

下面给出的这行代码在android中的含义......?

来自分类Dev

理解Java中的这段代码

来自分类Dev

这段代码中的逻辑错误?

来自分类Dev

Haskell中do块中<<-的含义

来自分类Dev

Java中<<和| =的含义

来自分类Dev

Tomcat中connectionTimeout的含义

来自分类Dev

ReactJS中`()=> {}`的含义

来自分类Dev

_在apply()中的含义

来自分类Dev

类型参数中`::`的含义?

来自分类Dev

awk命令中“ a”的含义?

来自分类Dev

Lisp中@(符号)的含义?

来自分类Dev

ALSA中句号的含义

来自分类Dev

Django中“ NoReverseMatch”的含义

来自分类Dev

SRID在postgis中的含义

来自分类Dev

Grep中“ word”的含义