[cpp] view plain copy #if(!defined(COCOS2D_DEBUG)||COCOS2D_DEBUG==1) #undefCOCOS2D_DEBUG #defineCOCOS2D_DEBUG0 #endif 通过宏#undef来消除当前宏的定义,从而重新定义宏. 由于COCOS2D_DEBUG初始值被定义为1,也就是程序的
- #if (!defined(COCOS2D_DEBUG) || COCOS2D_DEBUG == 1)
- #undef COCOS2D_DEBUG
- #define COCOS2D_DEBUG 0
- #endif
通过宏#undef来消除当前宏的定义,从而重新定义宏.
由于COCOS2D_DEBUG初始值被定义为1,也就是程序的调试模式,这样可以把当前宏定义为0,从而让程序的CCLOG等信息不在打印了.
看下面CCPlatformMacros.h中的定义:
[cpp] view plain copy
- #if !defined(COCOS2D_DEBUG) || COCOS2D_DEBUG == 0
- #define CCLOG(...) do {} while (0)
- #define CCLOGINFO(...) do {} while (0)
- #define CCLOGERROR(...) do {} while (0)
- #elif COCOS2D_DEBUG == 1
- #define CCLOG(...) NSLog(__VA_ARGS__)
- #define CCLOGERROR(...) NSLog(__VA_ARGS__)
- #define CCLOGINFO(...) do {} while (0)
- #elif COCOS2D_DEBUG > 1
- #define CCLOG(...) NSLog(__VA_ARGS__)
- #define CCLOGERROR(...) NSLog(__VA_ARGS__)
- #define CCLOGINFO(...) NSLog(__VA_ARGS__)
- #endif
所以,看一下源码,一切都明白了.同事可以分析出:
大写CCLOG是宏定义,当设置COCOS2D_DEBUG为0时,将不会再输出信息.