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