IOS 日志输出控制
2024-08-26 18:58:33
用以下内容可以控制在debug版本中打印日志,而在release版本中不打印
#ifdef DEBUG
# define DBLog(format,...) NSLog((@"[%s][%s][%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DBLog(...);
#endif
备注:
1.ANSI C标准中有几个标准预定义宏(也是常用的):
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__cplusplus:当编写C++程序时该标识符被定义。
2.可变参数宏 ...和_ _VA_ARGS_ _
__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。
实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所代表的字符串。
参考了http://www.cnblogs.com/lixiaohui-ambition/archive/2012/08/21/2649052.html
最新文章
- 使用nginx-http-concat优化网站响应
- 20145235 《Java程序设计》第8周学习总结
- C# 导出数据至 CSV
- rqnoj-396-SY学语文-dp
- GitHub安装失败
- 【REST API】
- hdoj 1513 Palindrome【LCS+滚动数组】
- ubuntu 下GIT的安装
- leetcode第一刷_Path Sum II
- Thinkphp3.2学习——架构_URL模式
- 浅析Python解释器的设计
- Java 工厂模式(一)— 抽象工厂(Abstract Factory)模式
- md5两次加密
- 关于tomcat WEB-INF/lib下类加载顺序
- Asp.Net项目与TCP服务端交互
- ML.NET 示例:深度学习之集成TensorFlow
- centos6安装配置zabbix3主控端
- array的方法 没记住的
- 读《SQL优化核心思想》:你不知道的优化技巧
- [置顶] 获取网络数据中的数组显示成ListView的简单流程
热门文章
- String类、正则表达式
- JavaWeb学习记录(十三)——商城购物之添加订单的数据库级联操作
- kuangbin_ShortPath K (POJ 3159)
- C++ Unicode SBCS 函数对照表
- 【转】IOS图像拉伸解决方案
- (转) ICCV 2015:21篇最火爆研究论文
- 矩阵的QR分解(三种方法)Python实现
- Opencv 3入门(毛星云)摘要
- 加快SQL连接速度
- 【转】ASP.NET的OnClientClick与OnClick事件【解决了“识别用户在对话框里面选yes或no的问题”】