zoukankan      html  css  js  c++  java
  • cocos2D-x demo 的源码分析 #define ..##.. 的妙用.

    最近在看cocos2d-x 但不知道如何下手,于是先看一下他编译的完成的testcpp的源码.发现了下面一段程序

    typedef CCLayer* (*NEWTESTFUNC)();
    #define TESTLAYER_CREATE_FUNC(className) 
    static CCLayer* create##className() 
    { return new className(); }
    
    #define CF(className) create##className

    #define 用的可以说出神入化了,这里主要考察了两点:
    1.#define 的连接符

    2#define...##.... 

    其中##在define里表示连接的意思, TESTLAYER_CREATE_FUNC(test) 表示我创建了一个如下函数:

    static CCLayer* createtest() 
    { 
        return new classtest(); 
    }

    然而下面又定义了一个对函数引用的宏 CF(className) ,在使用的时候我们直接CF(clsaaName)() 调用相应的函数即可。

    思考一下这样写有什么好处? 应该是化繁为简,方便得创建结构相似不同函数名的函数。

       

  • 相关阅读:
    建立十字链表
    KMP算法
    魔术师发牌问题(循环链表)
    约瑟夫问题(循环链表)
    中缀表达式 转 (逆)波兰表达式
    中缀表达式求值
    迷宫问题(回溯法)
    范数
    AUC
    概率论
  • 原文地址:https://www.cnblogs.com/onlycxue/p/3256236.html
Copyright © 2011-2022 走看看