學了那麼久才知道有這種好功能可以用= ="

#define DBG(msg, arg...) printf("%s:%s(%d): " msg, __FILE__, __FUNCTION__, __LINE__, ##arg)

__FILE__表示這行所在的程式檔案

__FUNCTION__表示這個函式所在的函式(唸起來好繞口= =) 不過如果是用gcc來編譯的話 建議是用__func__, 我之前用gcc 編譯前者好像不會過......

__LINE__代表這函式是在哪一行

其實也只是把printf有印出一些資訊的版本 define為一個函式這樣

(不過要我寫我還真不會= =||)

 

而在實際上運用可以這樣:

if(i != 2)
    DBG("%d\n", index);

這樣如果i不等於2的話 就會在前面先印出那些資訊 然後才會印出index的值

雖然在一般的小程式內可能用處不大 因為很快就能夠找到錯誤

不過如果是好幾十個檔案的程式發生錯誤且在程式內有用這功能來作處理的話 就能很快找到錯誤囉~~

 

參考網址

http://cgi.blog.roodo.com/trackback/11456265

arrow
arrow
    全站熱搜

    卡卡 發表在 痞客邦 留言(0) 人氣()