• 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/
  • 相关阅读:
    信息安全系统设计基础实验五报告
    实验六报告
    实验五报告
    第六周学习总结
    实验四
    第五周学习总结
    第四周学习总结
    实验三报告
    《数据结构与面向对象程序设计》第二、三周学习总结
    20182319《数据结构与面向对象程序设计》实验二报告
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/9237514.html
Copyright © 2020-2023  润新知