C 3 形參帶預設值的函式和內聯函式

2021-10-09 01:12:10 字數 935 閱讀 4662

形參帶預設值得函式,在呼叫的時候可以不用傳引數

class

base

private

:int b;

}int

main()

以上是一種引數的情況,當引數有兩個及以上的時候

給預設值的時候必須從右往左給

無論是在定義的時候或者宣告的時候都可以給定形參的預設值,且形參的預設值只能出現一次

int

sum(

int a,

int b =10)

intmain()

程式輸出結果為

ret:30

ret1:20

首先我們來看一段程式

int

sum(

int a,

int b)

intmain()

return0;

}

程式在呼叫函式後,需要進行幾個工作:儲存現常暫存器,實參入棧,執行完還原現場等,這些也成為函式的呼叫開銷。而上述**,不斷的呼叫sum函式,但是sum函式在程式中只有一句話,效率很低,不如把這一句話直接寫在主函式裡。內聯函式就是正對這個問題而產生的。在函式返回型別前加上 inline 關鍵字就標明該函式是內聯函式。

內聯函式和普通函式的區別:

1、標準函式有呼叫開銷,內聯函式在函式的編譯過程中在函式的呼叫點把函式展開,省去了呼叫開銷。

2、在符號表中沒有內聯函式的定義

3、並不是所有inline都被編譯成內聯函式,如:遞迴或者呼叫函式比較大

4、內聯函式在debug版本上是不起作用的,inline只有在release版本下才能提前出來(objump -t檢視符號表)

C 形參帶預設值的函式

include intsum int a,int b intmain sum函式的定義可以有以下幾種 int sum int a 10,int b 20 sum int sum int a,int b 20 sum a 但是int sum int a,int b 20 不可以編譯通過,原因是函式壓棧...

C 帶預設值的函式

url 在c 中,往往需要給某些函式的引數指定預設的值,其實這樣的思想並不難理解,這裡只是想說這樣的函式應該如何宣告和定義。比如說希望給函式print int value,int base 的引數base指定乙個預設的引數值10,那麼在.h檔案中宣告時,應該宣告為print int value,in...

C 內聯函式和帶預設形參值的函式

1.內聯函式 使用函式有利於 重用,可以提高開發效率,增強程式的可讀性,也便於分工合作,便於修改維護。但是,函式呼叫也會降低程式的執行效率,增加時間和空間方面的開銷。因此對於一些功能簡單 規模較小又使用頻繁的函式,可以設計為內聯函式。內聯函式不是在呼叫時發生控制轉移,而是在編譯時將函式體嵌入在每乙個...