在標準c以及各中編譯器中定義了一些物件巨集, 這些巨集的名稱以"__"開頭和結尾, 並且都是大寫字元. 這些預定義巨集可以被#undef, 也可以被重定義。
在ansi c標準中定義了__file__,line,data,time,__stdc__等標準的預定義巨集。gcc對其進行擴充套件,也定義了多個預定義巨集。
概括起來gcc中可使用的預定義巨集涵蓋了如下幾方面的資訊:
1、宿主的資訊:gnu的版本,編譯器的版本,型別的相關資訊,位元組序資訊等。
2、編譯動作的資訊:編譯的日期、時間;編譯時是否進行了時間或空間上的優化;定義的inline是否被編譯器執行等。
3、檔案的資訊:檔名稱、函式名稱、行數資訊、檔案最後修改時間等等。
4、計數資訊:counter,_include_level_等。
ansi c標準中有幾個標準預定義巨集:
file
date
time
line 等
line:在源**中插入當前源**行號;
file:在原始檔中插入當前源檔名;
date:在原始檔中插入當前的編譯日期
time:在原始檔中插入當前編譯時間;
stdc:當要求程式嚴格遵循ansi c標準時該標識被賦值為1;
__cplusplus:當編寫c++程式時該識別符號被定義。
參考文獻:
[1]
C語言預定義巨集的使用
ansic標準定義的6種c語言預定義巨集 line 表示當前源 的行號 file 表示當前原始檔的名稱 date 表示當前的編譯日期 time 表示當前的編譯時間 stdc 當要求程式嚴格遵循ansi c標準時該標識被賦值為1 cplusplus 當編寫c 程式時該識別符號被定義。要用到這幾個巨集定...
C語言預定義巨集
作用 對於 file line func 這樣的巨集,在除錯程式時是很有用的,因為你可以很容易的知道程式執行到了哪個檔案的那一行,是哪個函式。下面乙個例子是列印上面這些預定義的巨集的。date file line time function c標準中指定了一些預定義的巨集,對於程式設計經常會用到。下...
預定義,巨集定義
巨集定義 其作用就是 換其名曰 給程式中的一段特殊的 函式,資料取了個簡單明瞭的名字。不過有一點這傢伙的作用範圍是全域性的。即使它是在某乙個函式塊中定義的。這個其實也容易理解。因為巨集定義是預定義的一種,在我們的程式之前,由預編譯器 cpp 提前編譯出來了,那個時候程式裡的結構是個啥樣子編譯器壓根就...