//自定義NSLog---作用:開發(fā)方便調(diào)試,發(fā)布應(yīng)用后不使用NSLog 也不刪除
#ifdef DEBUG
#define DLog(fmt,...) NSLog((@"[文件名:%s]\n" "[函數(shù)名:%s]\n" "[行號:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define DLog(...)
#endif

1.png
VA_ARGS是一個可變參數(shù)的宏,很少人知道這個宏,這個可變參數(shù)的宏是新的C99規(guī)范中新增的,目前似乎只有g(shù)cc支(VC6.0的編譯器不支持)。宏前面加上##的作用在于,當(dāng)可變參數(shù)的個數(shù)為0時,這里的##起到把前面多余的","去掉的作用,否則會編譯出錯, 你可以試試.