使用ANSI C and Microsoft C++中常用的預定義宏

來源:互聯網
上載者:User

__FILE__       源檔案的名稱  如XXX.cpp
__LINE__       代碼在源檔案中是第幾行
__DATE__      源檔案完成日期如Aug 17 2011
__TIME__       源檔案完成時間如19:31:13
__TIMESTAMP__ 源檔案完成日期時間如Wed Aug 17 19:27:36 2011


如分配記憶體函數malloc()的一個版本就使用了上面的宏

#define   malloc(s)  _malloc_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)

另外可以在程式中使用__FILE__和__LINE__來確定是哪個檔案哪一行出錯:

       char *pszFileName = (char*)malloc(MAX_PATH * sizeof(char));

       if (pszFileName == NULL)

              printf("Error in %s %d\n",  __FILE__, __LINE__);

當然實際程式中大多用__FILE__和__LINE__快速定位錯誤後不會直接輸出,而是通過另一程式來將這些資訊以EMAIL形式反饋給開發人員。

 

對__FILE__可以方便的轉化成wchar_t類型,MSDN就有這個例子:

#define WIDEN2(x) L ## x

#define WIDEN(x) WIDEN2(x)

#define __WFILE__ WIDEN(__FILE__)

wchar_t *pwsz = __WFILE__;

 

宏中#與##的講解會另開一篇。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.