#ifdef DEBUG
#define DLog(fmt, ...) NSLog( (@"%s [Line %d] " fmt), __func__, __LINE__, ## __VA_ARGS__ );
#else
#define DLog(...)
#endif
//注
__func__是当前被编译代码的函数名。
__LINE__是在源代码中插入当前源代码行号.
__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错。