bail:
if ( err && image ) {
CGImageRelease( image );
image = NULL;
}
if ( provider ) CGDataProviderRelease( provider );
if ( colorspace ) CGColorSpaceRelease( colorspace );
*imageOut = image;
return err;
上述代码的 bail: 部分是什么意思,咋没见过这种代码风格?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这是goto
语句跳转的标签。
你正在看的代码:SquareCamViewController.m。
使用了一个宏命名require
,像这样:require( error == nil, bail );
这个宏是在AssertMacros.h
头文件中定义。他将标签作为第二参数,如果第一参数的值为false
使用goto
。
在C
中,使用goto
和标签来跳转清除函数结尾的代码是最常用的方法。