1. 程式人生 > >debug內建巨集

debug內建巨集

編譯器內建巨集:

先介紹幾個編譯器內建的巨集定義,這些巨集定義不僅可以幫助我們完成跨平臺的原始碼編寫,靈活使用也可以巧妙地幫我們輸出非常有用的除錯資訊。

ANSI C標準中有幾個標準預定義巨集(也是常用的):

__LINE__:在原始碼中插入當前原始碼行號;

__FILE__:在原始檔中插入當前原始檔名;

__DATE__:在原始檔中插入當前的編譯日期

__TIME__:在原始檔中插入當前編譯時間;

__STDC__:當要求程式嚴格遵循ANSI C標準時該標識被賦值為1;

__cplusplus:當編寫C++程式時該識別符號被定義。

編譯器在進行原始碼編譯的時候,會自動將這些巨集替換為相應內容。

#include<stdio.h>

#define Debug(fmt,args...)  do{printf(fmt, ##args);}while(0)

int main()
{
    Debug("file:%s,function:%s,line:%ld\n",__FILE__,__FUNCTION__,__LINE__);
    return 0;
}