zoukankan      html  css  js  c++  java
  • IOS 日志输出控制

    用以下内容可以控制在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

  • 相关阅读:
    事件(五):事件委托
    事件(四):事件类型
    【[ZJOI2005]午餐】
    【[POI2006]OKR-Periods of Words】
    【2^k进制数】
    【[SHOI2015]脑洞治疗仪】
    【[NOI2016]区间】
    【[SHOI2014]概率充电器】
    【逛公园】
    【[CQOI2014]数三角形】
  • 原文地址:https://www.cnblogs.com/leipei2352/p/3222000.html
Copyright © 2011-2022 走看看