首页 > 代码库 > 游戏效率优化(2) 使用const关键字
游戏效率优化(2) 使用const关键字
游戏效率优化(2)使用const关键字
DionysosLai 2014-5-15
使用const有很多好处,比方保护被修饰的东西,防止意外修改,提高程序健壮性等作用。不过使用const 可以提高程序运行效率,却很少有人知道。
下面看几个例子,在看cocos2d源码时,我们经常会看到如下类似的代码:
ccpAdd(const CCPoint& v1, const CCPoint& v2) { return v1 + v2; } ccpSub(const CCPoint& v1, const CCPoint& v2) { return v1 - v2; }看到这段代码,我们首先会觉得很奇怪,函数设计的本意是不要改变形参的值,通常我们会这样写道:
ccpAdd(const CCPoint v1, const CCPoint v2) { return v1 + v2; }
这样,就可以不用改变函数中形参的值,那么cocos2dx的作者又为什么要将形参定义成引用类型呢?
这个问题的原因在于:在调用函数时,如果传入的值不是指针、引用的话,那么会临时动态申请一块内存,保存传入的参数,接下来函数所有对这个参数的操作均会在这个内存中进行。如果我们传入的引用的话,那么就可以直接在参数内存中调用,而不需要临时动态申请空间,最后还要销毁这块空间问题。但,使用引用的话,又存在改变参数值的问题,因此我们会给引用加上“const”修饰符,防止被修饰的东西,发生意外修改。
这个问题,在这之前自己也没发现,后来是同事告诉我这个现象。SOGA,一起努力,我也把这个方法告诉大家。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。