C C 中的五個預定義的巨集名

2021-06-20 23:39:07 字數 848 閱讀 6563

c/c++中的五個預定義的巨集名,它們是:

__line__

__file__

__date__

__time__

__stdc__

c++中還定義了 __cplusplus

如果編譯器不是標準的,則可能僅支援以上巨集名中的幾個,或根本不支援。記住編譯程式也許還提供其它預定義的巨集名。

__date__ 進行預處理的日期(「mmm dd yyyy」形式的字串文字,如may 27 2006)

__file__ 代表當前源**檔名的字串文字 ,包含了詳細路徑,如g:/program/study/c+/test1.c

__line__ 代表當前源**中的行號的整數常量

__time__ 原始檔編譯時間,格式微「hh:mm:ss」,如:09:11:10;

__func__ 當前所在函式名,在編譯器的較高版本中支援

__function__ 當前所在函式名

對於__file__,__line__,__func__,__function__ 這樣的巨集,在除錯程式時是很有用的,因為你可以很容易的知道程式執行到了哪個檔案的那一行,是哪個函式。

而對於__date__,__time__則可以獲取編譯時間,如如下**通過巨集獲取編譯時間,並通過sscanf()從中獲取具體的年月日時分秒資料,可在**中做相應使用。我的**中是根據此資料作為版本標識,並依此判斷哪個版本新些及是否需要公升級。

char * creationdate   = __date__ ", " __time__;

sscanf(creationdate, "%s %d %d, %d:%d:%d", month, &day, &year, &hour, &min, &sec);

C C 中的預定義巨集

標準預定義巨集 內容 file 代表當前源 檔名的字串文字 包含了詳細路徑,如 g program study c main.cpp line 代表當前源 中的行號的整數常量 date 進行預處理的日期 mmm dd yyyy 形式的字串文字,如 aug 27 2017 time 原始檔編譯時間 格...

C C 幾個預定義的巨集

一邊情況下,c c 編譯器會內建幾個巨集,這些巨集定義不僅可以幫助我們完成跨平台的原始碼編寫,靈活使用也可以巧妙地幫我們輸出非常有用的除錯資訊。ansi c標準中有幾個標準預定義巨集 也是常用的 編譯器在進行原始碼編譯的時候,會自動將這些巨集替換為相應內容。下面的 不僅展示了各個預定義巨集的使用,還...

C 中的預定義巨集

line 程式編譯時包含當前行號 file 程式編譯時包含當前檔名 date 包含乙個形式為 month day year的字串,它表示把原始檔轉換為目標 的日期 time 包含乙個形式為 hour minute second 的字串,它表示程式被編譯的時間 function 包含當前執行的函式的函...