c語言編譯器的預定義符號
__line__ 當前(源**檔案)行號 [整數]
__file__ 當前正在編譯的檔案的檔名 [字串]
__date__ 當前日期,以「月月 日日 年年年年」的形式給出 [字串]
__time__ 當前時間,以「hh:mm:ss」的格式給出 [字串]
__stdc__ 如果編譯器符合ansi c標準,該巨集為1,否則為0
__stdc_hosted__ 如果實現了所有c標準庫,該巨集為1,否則為0
__stdc_version__ 被定義為199901l(不同編譯器可能不一樣,比如我用的gcc裡就沒有這個預定義符號)
注:這些預定義符號的首尾為兩個下劃線,如果是兩個單詞,中間以乙個下劃線連線。
如果在源**中使用了這些符號,它們會在預處理時被轉換(使用gcc編譯器的 -e 選項可以看到替換後的值)
c標準裡還在每個函式內預定義了乙個標誌符: __func__
它被定義為 static const char __func__="function-name";
即不能在程式內對__func__賦值,也不能改變它所指向的字串(函式名),否則報編譯錯誤
注:__func__是個標誌符,它在預處理階段不被替換,所以使用gcc -e 是看不到任何效果的。
例:test.c
int main()
輸出: test.c main
C 語言 編譯器
c 語言是高階程式語言,人們在使用 c 語言工作的時候不必用數字碼表示指令,大大簡化了對於計算機底層暫存器的操作,人們可以把工作的重點放在 設計和具體功能的實現,編寫出更易讀易懂的 可是計算機的工作和人類正好相反,c 語言編寫的 對於計算機而言就好比是天書且沒有意義可言,因為計算機是識別機器語言的,...
C語言的編譯器
c語言的常用編譯器 目前最流行的c語言編譯器有以下幾種 gnu compiler collection 或稱 gcc microsoft c 或稱 ms c borland turbo c 或稱 turbo c 這些c語言版本不僅實現了ansi c標準,而且在此基礎上各自作了一些擴充,使之更加方便 ...
C C 編譯器預定巨集使用
在c c 編譯器中,會有編譯器級別的預定義巨集,file line function date time 等。下面來一一介紹這幾個巨集的含義 file 當前檔案的檔名,linux下gcc只有檔名,而在windows下gcc會包含完整的路徑,可通過編譯選項設定為只有檔名 line 當前行號 funct...