c 帶預設值引數的函式

2021-08-09 14:49:08 字數 546 閱讀 3220

帶預設值引數的函式即在函式定義或宣告時,我們可以賦予函式引數預設值。所謂預設值就是在呼叫時,可以不寫某些引數的值,編譯器會自動把預設值傳遞給呼叫語句中。如果在函式的宣告和定義中同時設定同乙個引數的預設值時,則要求預設值設定是相同。

int sum(int a = 10, int b = 20);

int sum(int a, int b)

int main()

當呼叫乙個帶預設值引數的函式時,如果沒有給相應的實參,那麼編譯器就會自動把預設值傳遞給函式,如果有實參,則使用呼叫函式傳遞的實參值。

但是,不管使用還是不使用預設引數,從函式呼叫的彙編指令上來看,相應的引數都會有壓棧操作,因此帶預設值引數的函式不會影響彙編上cpu的push指令。

但在某些情況還有有一定的區別的,這種區別體現在:

當傳給函式的實參為變數時,此時從彙編上來看,需要先從記憶體中取變數的值,增加了mov指令,相對的效率就會降低。而當使用立即數作為實參傳給函式時,這種情況與使用預設值引數的函式所產生彙編指令是相同的,所以效率也是相同的。

C 中帶預設值引數的函式

函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。例1 int sum int a 10,int b 10 int main 注意 函式呼叫時,使用立即數傳參比使用變數...

方法引數 預設值 引數的預設值陷阱!

今日分享 引數的預設值陷阱 下面定義的函式f,其引數d是乙個預設引數,且為字典型別 def f a,d print f a print f d do some process return d 最後返回字典d,下面呼叫函式f ret dict f 1 第二個引數d使用預設值 ret dict b 2...

python函式之 預設值引數總結

1.預設值引數後的所有引數都必須是預設值引數,直到遇到任意引數列表def f1 a 2 b 3,c或 c 預設值引數後的引數必須都是預設值引數,直到遇到 即可變引數 print a,b,c f1 4,6 輸出 3 4 或3 4 2.預設值引數,傳遞新引數會覆蓋該函式本地符號表中的值,不傳遞則使用預設...