2010-08-14 19 views
1

可能重複:
C/C++ line number文件和行號的調試

嗨,

我有一個簡單的錯誤管理器類,其他類使用報告其隨後的錯誤打印到日誌文件供以後檢查。我可以打印出說明並給出錯誤代碼。我也想,是因爲它記錄文件名和記錄錯誤的行號(自動,而不是我每次寫它)。任何方式來做到這一點?我知道這是因爲我看到了,我找不到解決方案 - 可能是由於搜索條件不正確。

謝謝!

+1

[C/C++行號]的複製(http://stackoverflow.com/questions/2849832/cc-電話號碼) – 2010-08-14 21:20:23

回答

6

是的,您可以使用__FILE____LINE__宏,這些宏分別擴展爲文件名和行號。

8

正如詹姆斯所說McNellis,使用__FILE____LINE__宏。請注意,這些是宏,如果您只是在錯誤處理方法中使用它們,它們只會告訴您錯誤處理方法的定義。如果你不想在代碼中傳播它們,你需要在另一個宏中使用它們。事情是這樣的:

void my_error_handler(const char* file, int line, const char* message) { 
    // ... 
} 

#define ERROR(MESSAGE) my_error_handler(__FILE__, __LINE__, MESSAGE) 

然後你就可以在你的代碼中使用它:

if (1 == 2) { 
    ERROR("Something went wrong."); 
}