zoukankan      html  css  js  c++  java
  • cocos2d-x-3.1 经常使用宏 (coco2d-x 学习笔记五)

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


    与节点属性(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。产生随机数与弧度与角度的转换。
  • 相关阅读:
    Windows7 如何添加excel,word到鼠标右键
    Java程序安装失败
    交换机
    Hbase
    Hive
    Hdoop
    PL/SQL连不上,报 ORA-12170:TNS 连接超时
    Error in invoking target 'mkldflags ntcontab.o nnfgt.o' of mkdefile '/u01/app/oracle/product/11.2.0
    用js 的for循环打印三角形,提取水仙花数,求本月多少天
    JS循环、数组与练习题
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4213999.html
Copyright © 2011-2022 走看看