C語言編譯器的預定義符號

2021-04-30 19:53:18 字數 760 閱讀 1696

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...