C C 中的預定義巨集

2021-08-07 11:09:47 字數 1566 閱讀 6545

標準預定義巨集

內容__file__代表當前源**檔名的字串文字(包含了詳細路徑,如」g:/program/study/c++/main.cpp」)

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

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

__time__原始檔編譯時間(格式為」hh:mm:ss」,如」09:11:10」 )

__stdc__設定為1時,表示該實現遵循c標準

__stdc_version__代表c標準版本號(格式為yyyymml的乙個長整型數,如c99為199901l)

__stdc_hosted__若為本機環境則設定為1,否則設為0

__cplusplus

該巨集有定義說明使用的是c++編譯器

__objc__設定為1時,表示使用的是objective-c編譯器

__assembler__設定為1時,表示正在處理組合語言

除了上述標準預定義巨集,還有一些預定巨集也經常用到,比如:

__function__:當前所在函式名

__func__:同__function__

對於__file____line____func____function__這樣的巨集,在除錯程式時是很有用的,因為你可以很容易的知道程式執行到了哪個檔案的那一行,是哪個函式。而對於__date____time__則可以獲取編譯時間,可以根據此資料作為版本標識,並依此判斷哪個版本新些及是否需要公升級。

#include 

void func1()

int main()

輸出結果為:

the file is ../main.cpp

this is line 10

the date is aug 27 2017

the time is 16:06:34

this function is main

this is c++ compiler

this is line 4

this function is func1

C C 預定義巨集

下面描述的巨集定義,不需引用其他標頭檔案,直接可用於 中。特定的作用給我們提供了不少的便利。分別描述如下 1 file line function 或者 func file 當前程式行所在原始檔名稱,標準c支援,該巨集當做字串對待 line 當前程式行所在原始檔內的行號,標準c支援,該巨集當做整形對...

C C 幾個預定義的巨集

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

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

c c 中的五個預定義的巨集名,它們是 line file date time stdc c 中還定義了 cplusplus 如果編譯器不是標準的,則可能僅支援以上巨集名中的幾個,或根本不支援。記住編譯程式也許還提供其它預定義的巨集名。date 進行預處理的日期 mmm dd yyyy 形式的字串文...