1、巨集名的命名規範:
全部大寫有多個單詞中間使用下劃線隔開(常用)
以k開頭的駝峰標識(不常用)
2、程式執行過程
源** -》編譯預處理 ——》 編譯 -》鏈結 -》 執行
3、編譯預處理指令:在編譯前進行解析處理的指令
編譯預處理指令包括:
1. 巨集定義 #define
1.1 不帶引數巨集定義
1.2 帶引數的巨集定義
2. 條件編譯
3. 檔案包含 #include
編譯預處理指令:
所有編譯預處理指令都是以#開頭的
所有編譯預處理指令都是不需要分號
4、不帶引數巨集定義:在預編譯的時候所出現巨集名標識的地方都會被替換成巨集名後面的值
注意點:
在注釋中的巨集名不會替換
在字串中出現的巨集名不會被替換
5、帶引數的巨集定義:把出現巨集名地方都會把巨集名後面小括號中的引數代入到巨集後面的表示式中,然後進行替換
格式:#define 巨集名(引數列表) 表示式
注意點:
引數列表中沒有型別
巨集名與括號之間一定不要加空格
帶引數的巨集與函式的區別:
函式有乙個呼叫過程,會開闢新儲存空間,需要花費一些開銷的
巨集僅僅是做乙個替換的操作
使用場景:
當計算比較簡單,引數比較少的時候使用巨集,巨集提高運算效率
當邏輯比較複雜、引數多的時候使用函式
6、巨集的注意點:
如果你做題,巨集僅僅是做乙個替換的操作
如果自己寫巨集定義,那麼所有出現引數以及運算結果的地方都要加上括號
巨集有一些固有的缺點是沒有辦法消除的,在使用帶引數的巨集的時候不要在引數使用++ – += -= /= *= %=
C語言學習筆記 巨集定義
define 叫做巨集定義命令,它也是c語言預處理命令的一種。所謂巨集定義,就是用乙個識別符號來表示乙個字串,如果在後面的 現了該識別符號,那麼就全部替換成指定的字串。巨集定義是由源程式中的巨集定義命令 define完成的,巨集替換是由預處理程式完成的。define 巨集名 字串 表示這是一條預處理...
C語言學習筆記12 巨集定義與使用分析
在c語言中 define 是預處理器處理的單元實體之一 define 定義的巨集可以出現在程式的任意位置 define定義之後的 都可以使用這個巨集 定義巨集常量 巨集表示式被預處理器處理 直接對巨集進行文字替換 編譯器不知道巨集表示式的存在 預處理器不會對巨集定義進行語法檢查,巨集定義是出現的語法...
巨集定義 C語言基礎學習筆記
define include ifndef define maxszie 10000帶引數的巨集 define add x,y x y define plus x,y add x,y define add x,y x y 呼叫 plus plus a,b c 呼叫結果 就是按照順序巢狀 最終 c b...