博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d-x-3.1 经常使用宏 (coco2d-x 学习笔记五)
阅读量:5903 次
发布时间:2019-06-19

本文共 1129 字,大约阅读时间需要 3 分钟。

在代码中使用这些宏,能够降低敲键盘的次数,从而提高编写效率。

与节点属性(property)相关的

CC_PROPERTY_READONLY
CC_PROPERTY_READONLY_PASS_BY_REF
CC_PROPERTY
CC_PROPERTY_PASS_BY_REF
CC_SYNTHESIZE_READONLY
CC_SYNTHESIZE_READONLY_PASS_BY_REF
CC_SYNTHESIZE
CC_SYNTHESIZE_PASS_BY_REF
CC_SYNTHESIZE_RETAIN

详细定义见CCPlatformMacros.h。这些主要是为了模拟objective-C下的@property, readonly, retain, @synthesize等keyword。

与命名空间(namespace)相关

NS_CC_BEGIN
NS_CC_END
USING_NS_CC
详细定义见CCPlatformMacros.h。

与节点的创建方法(node, create)相关

CREATE_FUNC
NODE_FUNC
详细定义见CCPlatformMacros.h。

与内存管理相关

CC_SAFE_DELETE
CC_SAFE_DELETE_ARRAY
CC_SAFE_FREE
CC_SAFE_RELEASE
CC_SAFE_RELEASE_NULL
CC_SAFE_RETAIN

日志

CCLOG
CCLOGERROR
CCLOGINFO
CCLOGWARN
详细定义见CCPlatformMacros.h。

断言

CC_BREAK_IF
CC_ASSERT
CCAssert

当中CC_BREAK_IF是在CCPlatformMacros.h中定义的,它用在循环中的条件推断。

CC_BREAK_IF有一个使用很频繁的场合,就是在do{}while(0)中。这个使用语句块的作用还是挺大的。依据GOOGLE编程规范,为了降低代码层次,条件推断应该先进行,不满足则跳过后面代码。跳过有两种方式,一种是return,还有一种是break。前一种方式下,后面的所有代码都不能得到运行;后一种方式必须放在循环或者swich语句块中。假设使用do{}while(0)则能够解决第一种方式后面的代码得不到运行的问题。

CCAssert定义在ccMacros.h中,它是对CC_ASSERT的封装。与数学相关

CCRANDOM_MINUS1_1
CCRANDOM_0_1
CC_DEGREES_TO_RADIANS
CC_RADIANS_TO_DEGREES
详细定义见ccMacros.h。产生随机数与弧度与角度的转换。

转载地址:http://tykpx.baihongyu.com/

你可能感兴趣的文章
上传图片预览
查看>>
程序设计的一些原理
查看>>
lagp,lacp详解
查看>>
LVS之DR模式原理与实践
查看>>
struts2+extjs
查看>>
Apache2.4.33安装无systemctl/service status/state显示
查看>>
Docker的系统资源限制及验证
查看>>
c++ ios_base register_callback方法使用
查看>>
Java中为什么需要Object类,Object类为什么是所有类的父类
查看>>
angularjs-paste-upload
查看>>
linux基础命令 head
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
The Shared folder with you
查看>>
poj 2234 Matches Game
查看>>
sax方式解析XML学习笔记
查看>>
Springboot配置(上)
查看>>
java--Eclipse for mac 代码提示(代码助手,代码联想)快捷键修改
查看>>
Jdom的简单操作
查看>>
left join on/right join on/inner join on/full join on连接
查看>>
Codeforces 582B Once Again
查看>>