C語言 列印呼叫函式的行號,檔名 函式名用於除錯

2021-10-02 07:14:16 字數 568 閱讀 7099

c語言為了除錯方便,經常需要在故障處輸出問題描述,此時能夠獲得呼叫函式的相關資訊,就會很方面找到問題所在,現在將實現方法描述如下:

第一種方法:

void debugout(void)

當該函式被呼叫時,輸出的是本函式的檔案檔名、函式名、函式所在行號,無法定位問題所在。

方法二:

#define debug_out() debugout(file,function,line)

void debugout(const char* file,const char* function,int line)

int main(void)

{printf("main func ");

/*** 呼叫該函式,輸出主函式的檔名、函式名、當前呼叫行號 ***/

debug_out();

採用這種方法時,可以獲得問題所在的檔名、函式名、當前呼叫行號,可以比較方便追蹤問題。當然還可以直接使用入參的方式將這些資訊傳入,但是每次呼叫故障資訊輸出時,都要去傳參,沒有這樣方便。

printf 列印 檔名 函式名 行號

輸出原始檔的標題,目前執行行的行數,編譯的日期,編譯的時間。linux下實現 include int main printf 當前 行 d n line printf 當前源 檔名 s n file printf 當前檔案編譯的日期 s n date printf 當前檔案編譯的時間 s n tim...

QT 列印當前檔名,行號和函式名稱

定義 include define mydebug qdebug tr 檔名 file tr 行號 line tr 函式名 function 在函式中執行mydebug 即可 void mainwindow doactionnew slot 執行結果 檔名 mainwindow.cpp 行號 39 ...

C檔案編譯時間,日期,行號,檔名獲取方式

ansic標準定義了可供c語言使用的預定義巨集 1 line 在源 中插入當前源 行號 2 file 在源 中插入當前源 檔名 3 date 在源 中插入當前編譯日期 注意和當前系統日期區別開來 4 time 在源 中插入當前編譯時間 注意和當前系統時間區別開來 識別符號 line 和 file 通...