当前位置 : 主页 > 手机开发 > 其它 >

消除当前定义的宏,来重新定义宏的值 从而让cocos2d-x变为非调试模式

来源:互联网 收集:自由互联 发布时间:2021-06-13
[cpp] view plain copy #if(!defined(COCOS2D_DEBUG)||COCOS2D_DEBUG==1) #undefCOCOS2D_DEBUG #defineCOCOS2D_DEBUG0 #endif 通过宏#undef来消除当前宏的定义,从而重新定义宏. 由于COCOS2D_DEBUG初始值被定义为1,也就是程序的
[cpp]  view plain  copy
  1. #if (!defined(COCOS2D_DEBUG) || COCOS2D_DEBUG == 1)  
  2.     #undef COCOS2D_DEBUG  
  3.     #define COCOS2D_DEBUG 0  
  4. #endif  

通过宏#undef来消除当前宏的定义,从而重新定义宏.

由于COCOS2D_DEBUG初始值被定义为1,也就是程序的调试模式,这样可以把当前宏定义为0,从而让程序的CCLOG等信息不在打印了.

看下面CCPlatformMacros.h中的定义:

[cpp]  view plain  copy
  1. #if !defined(COCOS2D_DEBUG) || COCOS2D_DEBUG == 0  
  2. #define CCLOG(...) do {} while (0)  
  3. #define CCLOGINFO(...) do {} while (0)  
  4. #define CCLOGERROR(...) do {} while (0)  
  5.   
  6. #elif COCOS2D_DEBUG == 1  
  7. #define CCLOG(...) NSLog(__VA_ARGS__)  
  8. #define CCLOGERROR(...) NSLog(__VA_ARGS__)  
  9. #define CCLOGINFO(...) do {} while (0)  
  10.   
  11. #elif COCOS2D_DEBUG > 1  
  12. #define CCLOG(...) NSLog(__VA_ARGS__)  
  13. #define CCLOGERROR(...) NSLog(__VA_ARGS__)  
  14. #define CCLOGINFO(...) NSLog(__VA_ARGS__)  
  15. #endif   

所以,看一下源码,一切都明白了.同事可以分析出:

大写CCLOG是宏定义,当设置COCOS2D_DEBUG为0时,将不会再输出信息.

网友评论