①:最常見巨集函式
#define max(a,b) ((a>b)?a:b)
#define min(a,b) ((a②:只能用巨集函式,主要優點在於巨集定義的函式傳入引數時不挑引數型別,不需要引數絕對匹配。
用於為不明確型別malloc空間
#define malloc(n,type) ((type*)malloc(n * sizeof(type)))
用於比較不同型別資料大小,比如float a 和 int b比較大小
#define max(a,b) ((a>b)?a:b)
多行巨集函式注意點:
①:函式體未結束時換行需要加上「\」
#define fun(a,b)\ {\
a++;\
b++;\
②:若需要返回值,則需要將函式體「()」擴起,且返回值就是最後一行函式的結果,如下即返回a+b的數值
#define fun(a,b)\
({\
a++;\
b++;\
a+b;\
巨集定義函式
巨集定義也可以成為 巨集代換 c語言提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。巨集定義和操作符的區別是 巨集定義是替換,不做計算,也不做表示式求解。c語言編譯工具會在預處理階段,將巨集名替換為字串。所以,我們可以把巨集定義理解為,發生在程式編譯之前的字串替換操作...
C 語法 巨集定義define和函式的作用
要寫好c語言,漂亮的巨集定義是非常重要的。巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。在軟體開發過程中,經常有一些常用或者通用的功能或者 段,這些功能既可以寫成函式,也可以封裝成為巨集定義。那麼究竟是用函式好,還是巨集定義好?這就要求我們對二者進行合理的取捨。我們來看乙個例子,比較兩個...
C 語法 巨集定義define和函式的作用
要寫好c語言,漂亮的巨集定義是非常重要的。巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。在軟體開發過程中,經常有一些常用或者通用的功能或者 段,這些功能既可以寫成函式,也可以封裝成為巨集定義。那麼究竟是用函式好,還是巨集定義好?這就要求我們對二者進行合理的取捨。我們來看乙個例子,比較兩個...