巨集定義函式使用

2021-10-18 17:14:11 字數 473 閱讀 3569

開闢一片棧空間

記錄返回位址

將形參壓棧,

從函式返回還要釋放堆疊。

函式的引數必須被宣告為一種特定的型別,所以它只能在型別合適的表示式上使用,我們如果要比較兩個浮點型的大小,就不得不再寫乙個專門針對浮點型的比較函式。反之,上面的那個巨集定義可以用於整形、長整形、單浮點型、雙浮點型以及其他任何可以用「>」操作符比較值大小的型別,也就是說,巨集是與型別無關的。

巨集函式在預編譯時,同函式定義的**來替換函式名,將函式**段嵌入到當前程式,不會產生函式呼叫,所以會省去普通函式保留現場恢復現場的時間,但因為要將定義的函式體嵌入到當前程式,所以不可避免的會占用額外的儲存空間。在頻繁呼叫同乙個巨集的時候,該現象尤其明顯。

#define func_test(param1,param2)\

todo\

基本上時可以直接使用的,就是你想把引數作為什麼型別的變數就用對應的方式去使用即可。就是由於沒有型別檢查所以使用的時候要小心注意。

巨集定義函式

巨集定義也可以成為 巨集代換 c語言提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。巨集定義和操作符的區別是 巨集定義是替換,不做計算,也不做表示式求解。c語言編譯工具會在預處理階段,將巨集名替換為字串。所以,我們可以把巨集定義理解為,發生在程式編譯之前的字串替換操作...

C語言巨集定義和巨集定義函式

c語言巨集定義和巨集定義函式 巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。在軟體開發過程中,經常有一些常用或者通用的功能或者 段,這些功能既可以寫成函式,也可以封裝成為巨集定義。那麼究竟是用函式好,還是巨集定義好?這就要求我們對二者進行合理的取捨。我們來看乙個例子,比較兩個數或者表示式...

在主函式內使用巨集定義

之前習慣於在主函式外面使用巨集定義,但實際上主函式內也可使用,例 include include include include include include intmain define min x,y x y x y char const end ptr g 8 char tmp ptr g ...