C語言學習筆記12 巨集定義與使用分析

2021-08-15 18:55:35 字數 1014 閱讀 4491

在c語言中:

#define 是預處理器處理的單元實體之一

#define 定義的巨集可以出現在程式的任意位置#define定義之後的**可以使用這個巨集

定義巨集常量:

巨集表示式被預處理器處理(直接對巨集進行文字替換), 編譯器不知道巨集表示式的存在

預處理器不會對巨集定義進行語法檢查, 巨集定義是出現的語法錯誤只能被編譯器檢測

巨集表示式用 「實參」完全替代形參, 不進行任何運算

巨集表示式沒有任何的 「呼叫」開銷,效率於函式

巨集表示式中不能出現遞迴定義

巨集表示式可以比函式更強大,但也更容易出錯,在使用時需小心使用巨集

含義示例

__file__

被編譯的檔名

file1.c

__line__

當前行號

25__date__

編譯時的日期

jan 31 2018

__time__

編譯時的時間

17:01:01

__stdc__

編譯器是否遵循標準c規範

1

/*測試***/

#include

#define

log(s) printf("[%s] %s \n", __date__, __file__, __line__, s)

int main()

執行結果

[feb 25 2018]

begin to run main code...

[feb 25 2018]

end

C語言學習筆記 巨集定義

define 叫做巨集定義命令,它也是c語言預處理命令的一種。所謂巨集定義,就是用乙個識別符號來表示乙個字串,如果在後面的 現了該識別符號,那麼就全部替換成指定的字串。巨集定義是由源程式中的巨集定義命令 define完成的,巨集替換是由預處理程式完成的。define 巨集名 字串 表示這是一條預處理...

c語言學習筆記之巨集定義

1 巨集名的命名規範 全部大寫有多個單詞中間使用下劃線隔開 常用 以k開頭的駝峰標識 不常用 2 程式執行過程 源 編譯預處理 編譯 鏈結 執行 3 編譯預處理指令 在編譯前進行解析處理的指令 編譯預處理指令包括 1.巨集定義 define 1.1 不帶引數巨集定義 1.2 帶引數的巨集定義 2.條...

C語言學習筆記12

回顧 1.位置指標 作業 1.id判斷 2.根據id顯示人員資訊 預處理指令是c語言支援的一種特殊指令 它們以 做開頭,不以 做結尾 預處理指令在編譯的第乙個階段被處理 所有預處理指令都是把程式變成另外的樣子 gcc可以使用 e選項單獨處理所有預處理指令 define是乙個預處理指令 這個預處理指令...