尝试一下markdown

尝试一下markdown

简单介绍以下几个宏:

  • __VA_ARGS__是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。
  • __FILE__宏在预编译时会替换成当前的源文件名
  • __LINE__宏在预编译时会替换成当前的行号
  • __FUNCTION__宏在预编译时会替换成当前的函数名称
  1. 在***-Prefix.pch里面添加, 重新定义系统的NSLog,__OPTIMIZE__ 是release 默认会加的宏
    `#ifndef OPTIMIZE

define NSLog(...) NSLog(VA_ARGS)

else

define NSLog(...) {}

endif`

2.在***-Prefix.pch里面添加
`#ifdef DEBUG

define DLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), FILE, FUNCTION, LINE, ##VA_ARGS);

else

define DLog(...);

endif`

  1. 在***-Prefix.pch里面添加, 重新定义系统的NSLog,OPTIMIZE 是release 默认会加的宏
    `#ifndef OPTIMIZE

define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), PRETTY_FUNCTION, LINE, ##VA_ARGS)

else

define DLog(...)

endif`

DLog会打印出:类名,方法名,行数

原文地址:https://www.cnblogs.com/niit-soft-518/p/6484695.html