zoukankan      html  css  js  c++  java
  • Debug模式自定义NSlog

    #ifdef DEBUG  
    # define DLog(fmt, ...) NSLog((@"[文件名:%s]
    " "[函数名:%s]
    " "[行号:%d] 
    " fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);  
    #else  
    # define DLog(...);  
    #endif
    
    
    参数解释:
    
    __VA_ARGS__是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错, 你可以试试。
    __FILE__宏在预编译时会替换成当前的源文件名
    3.__LINE__宏在预编译时会替换成当前的行号
    4.__FUNCTION__宏在预编译时会替换成当前的函数名称
    有了以上这几个宏,特别是有了__VA_ARGS__,调试信息的输出就变得灵活多了。
    
    
    作者:AimLay
    链接:https://www.jianshu.com/p/c9df8a15d94e
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    2016/3/10 Java 错题
    2016/3/9 Java 错题集
    Java Socket 编程实验总结
    CSU 1290
    CSU 1307
    CSU 1060
    Problem B SPOJ DCEPC11I
    activemq 学习系列(二) 常用配置
    activemq 学习系列(一) 详细入门使用
    MySql 用户创建与授权
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/9237514.html
Copyright © 2011-2022 走看看