码迷,mamicode.com
首页 > 其他好文 > 详细

简单介绍以下几个宏

时间:2014-08-16 01:00:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:os   io   文件   for   ar   cti   line   log   

简单介绍以下几个宏:

1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。
2) __FILE__ 宏在预编译时会替换成当前的源文件名
3) __LINE__宏在预编译时会替换成当前的行号
4) __FUNCTION__宏在预编译时会替换成当前的函数名称

1.重新定义系统的NSLog,__OPTIMIZE__ 是release 默认会加的宏

  1. #ifndef __OPTIMIZE__  
  2. #define NSLog(...) NSLog(__VA_ARGS__)  
  3. #else  
  4. #define NSLog(...){}  
  5. #endif

2.直接自己写#define,当release版本的时候把#define 注释掉即可

  1. #define IOS_DEBUG
  2. #ifdef IOS_DEBUG  
  3. #define NSLog(...) NSLog(__VA_ARGS__)  
  4. #endif  

3.

  1. #ifdef DEBUG    
  2. # define DLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);    
  3. #else    
  4. # define DLog(...);    
  5. #endif    

这种方式需要修改项目的配置,使得在debug编译的时候,编译DLog的宏,产生详细的日志信息,而release的时候,不产生任何控制台输出。

相比而言,还是第一种比较方便。

简单介绍以下几个宏,布布扣,bubuko.com

简单介绍以下几个宏

标签:os   io   文件   for   ar   cti   line   log   

原文地址:http://www.cnblogs.com/zhujin/p/3915902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!