ansic標準定義了以下5種可供c語言使用的預定義巨集:
__line__ 在源**中插入當前源**行號
__file__ 在源**中插入當前源**檔名
__date__ 在源**中插入當前編譯日期〔注意和當前系統日期區別開來〕
__time__ 在源**中插入當前編譯時間〔注意和當前系統時間區別開來〕
__stdc__ 當要求程式嚴格遵循ansic標準時該識別符號被賦值為1。
識別符號__line__和__file__通常用來除錯程式;
識別符號__date__和__time__通常用來在編譯後的程式中加入乙個時間標誌,以區分程式的不同版本;
當編譯器嚴格遵循ansic標準時,識別符號__stdc__就會被賦值為1。
如果編譯器不遵循標準時,則可能僅支援以上巨集名中的幾個,或根本不支援;不同的編譯器可能會提供其他預定義的巨集名。
以下是在linux c 中的**及其在gcc編譯器中的執行效果:
源**檔名test.c
#include
int main()
編譯執行結果如下:
[root@localhost test]# gcc test.c
[root@localhost test]# ./a.out
5main
21:25:52
may 30 2016
test.c
1
C語言預定義巨集
作用 對於 file line func 這樣的巨集,在除錯程式時是很有用的,因為你可以很容易的知道程式執行到了哪個檔案的那一行,是哪個函式。下面乙個例子是列印上面這些預定義的巨集的。date file line time function c標準中指定了一些預定義的巨集,對於程式設計經常會用到。下...
C語言預定義巨集的使用
ansic標準定義的6種c語言預定義巨集 line 表示當前源 的行號 file 表示當前原始檔的名稱 date 表示當前的編譯日期 time 表示當前的編譯時間 stdc 當要求程式嚴格遵循ansi c標準時該標識被賦值為1 cplusplus 當編寫c 程式時該識別符號被定義。要用到這幾個巨集定...
預定義,巨集定義
巨集定義 其作用就是 換其名曰 給程式中的一段特殊的 函式,資料取了個簡單明瞭的名字。不過有一點這傢伙的作用範圍是全域性的。即使它是在某乙個函式塊中定義的。這個其實也容易理解。因為巨集定義是預定義的一種,在我們的程式之前,由預編譯器 cpp 提前編譯出來了,那個時候程式裡的結構是個啥樣子編譯器壓根就...