_skyfish 2013-03-29 01:39 采纳率: 57.1%
浏览 2990
已采纳

求教下这个 “bail:” 这是什么语法? 咋没见过

bail:
    if ( err && image ) {
        CGImageRelease( image );
        image = NULL;
    }
    if ( provider ) CGDataProviderRelease( provider );
    if ( colorspace ) CGColorSpaceRelease( colorspace );
    *imageOut = image;
    return err;

上述代码的 bail: 部分是什么意思,咋没见过这种代码风格?
代码源自ios example SquareCam(http://developer.apple.com/library/ios/#samplecode/SquareCam/Introduction/Intro.html)

  • 写回答

2条回答

  • g989_1314125 2013-03-29 04:32
    关注

    这是goto语句跳转的标签。

    你正在看的代码:SquareCamViewController.m。使用了一个宏命名require,像这样:

    require( error == nil, bail );
    

    这个宏是在AssertMacros.h头文件中定义。他将标签作为第二参数,如果第一参数的值为false使用goto

    在C中,使用goto和标签来跳转清除函数结尾的代码是最常用的方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作