Release版本關(guān)閉Log輸出
#ifdef DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...)
#endif
輸出更詳細(xì)的調(diào)試信息
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函數(shù)名:%s]\n" "[行號:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...);
#endif
1) __VA_ARGS__ 是一個(gè)可變參數(shù)的宏,這個(gè)可變參數(shù)的宏是新的C99規(guī)范中新增的,目前似乎只有g(shù)cc支持(VC6.0的編譯器不支持)凳干。
宏前面加上##的作用在于秘遏,當(dāng)可變參數(shù)的個(gè)數(shù)為0時(shí)赴肚,這里的##起到把前面多余的","去掉的作用,否則會編譯出錯(cuò), 你可以試試剑肯。
2) __FILE__ 宏在預(yù)編譯時(shí)會替換成當(dāng)前的源文件名
3) __LINE__宏在預(yù)編譯時(shí)會替換成當(dāng)前的行號
4) __FUNCTION__宏在預(yù)編譯時(shí)會替換成當(dāng)前的函數(shù)名稱