#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
在debug模式下時,分配內存時的new被替換成了DEBUG_NEW,而這個DEBUG_NEW不僅要傳入內存塊的大小,還要傳入源文件名和行號,這就有個好處,即當發生內存泄漏時,我們可以在調試模式下定位到該問題代碼處。若刪掉該句,就不能進行定位了。而在release版本下的new就是簡單的new,並不會傳入文件名和行號。
如果定義了_DEBUG,表示在調試狀態下編譯,因此相應修改了兩個符號的定義THIS_FILE是一個char數組全局變量,字符串值爲當前文件的全路徑,這樣在Debug版本中當程序出錯時出錯處理代碼可用這個變量告訴你是哪個文件中的代碼有問題。