C語言知識 巨集

2021-08-11 05:10:07 字數 432 閱讀 1564

<1>巨集的定義

#define  識別符號替換列表

例如  #define  sum 100  

sum的值為100

<2>帶引數的巨集

#define指令-帶引數的巨集

例如 #define max(a,b)  ((a>b)?(a):(b))

這個巨集的作用是用來找最大值的

注:帶引數的巨集經常當作一些簡單函式來使用。

優點: ①

程式可能會稍微快些。乙個函式呼叫在執行時通常會有些額外開銷——儲存上下文資訊、複製引數的值等。而乙個巨集的呼叫則沒有這些執行開銷。

②巨集會更「通用」。與函式的引數不同,巨集的引數沒有型別。因此,只要預處理後的程式依然是合法的,巨集可以接受任何型別的引數。例如,我們可以使用max巨集從兩個數中選出較大的乙個,數的型別可以是int,long int,float,double等等。

C語言巨集技巧 X巨集

本文介紹下x巨集的使用 首先簡單介紹下巨集的幾種用法 define strcat x,y x y define str x x define str x x define log x y 拼接xy x 單引號包裹 x x 字串化,雙引號包裹 x va args 會擴充套件引數.ansi c標準中有幾...

C語言巨集定義

c語言有很多預處理命令,如包含命令 include,巨集定義命令 define。預處理命令在程式編譯之前被編譯器處理,而巨集定義也在此時被替換。或c 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集...

C語言巨集定義

乙個巨集定義的作用域是從定義處到 undef處或檔案結尾。undef num 現在此處num沒有定義。1.ifdef num 如果num有巨集定義就編譯此處。else 如果num沒有巨集定義就編譯此處 endif 不論num 有沒有巨集都編譯,即判斷體已結束。ifndef num 如果num沒有巨集...