標籤:style blog http io ar color os 使用 sp
前言:
1)輸出日誌是會大量損耗系統效能
2)輸出的資訊很容易會被截取到,導致資訊不安全。
所以我們會在發行版(Release)取消所有的Log。如果一行一行地去注釋掉Log,顯然不是一個明確的選擇。
因此我們可以使用宏去自訂Log輸出。
最簡單的一個例子:
#ifdef DEBUG# define GCLog(fmt, ...) NSLog((fmt), ##__VA_ARGS__);#else# define GCLog(...);#endif
使用方法:
GCLog(@"sdf");
使用宏自訂輸出,還可以很方便地管理輸出的內容:
#ifdef DEBUG # define DLog(fmt, ...) NSLog((@"[檔案名稱:%s]\n" "[函數名:%s]\n" "[行號:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...); #endif
摘自:http://blog.csdn.net/remote_roamer/article/details/7107320
1) __VA_ARGS__ 是一個可變參數的宏,很少人知道這個宏,這個可變參數的宏是新的C99規範中新增的,目前似乎只有gcc支援(VC6.0的編譯器不支援)。宏前面加上##的作用在於,當可變參數的個數為0時,這裡的##起到把前面多餘的","去掉的作用,否則會編譯出錯, 你可以試試。2) __FILE__ 宏在先行編譯時會替換成當前的源檔案名稱3) __LINE__宏在先行編譯時會替換成當前的行號4) __FUNCTION__宏在先行編譯時會替換成當前的函數名稱有了以上這幾個宏,特別是有了__VA_ARGS__ ,調試資訊的輸出就變得靈活多了。
摘自:http://blog.chinaunix.net/uid-22878837-id-2110544.html
IOS利用宏自訂輸出(NSLog)