c++中允許函式在定義或者宣告時,設定函式的預設引數,呼叫時如果不指定引數的具體值則按照預設引數呼叫。
但是需要注意一下幾點:
1、必須從右向左新增預設值,也就是預設值引數的右邊引數都必須是預設值
void fun(int a , int b , int c =10);//正確
void fun(int a , int b = 10, int c );//不予訊
2、引數的值也可以是表示式或者是函式的返回值呼叫。這樣,表示式將在函式被呼叫的時候求值。
3、在使用預設引數時應該避免和函式過載發生衝突。
void fun(int a , int b =10 );
void fun(int a );
main()函式中fun(10);//將會報錯,因為和函式過載發生了衝突,編譯器不知道應該呼叫哪個函式。
4、從彙編上看效率上和普通函式的區別,都是要產生函式呼叫堆疊的出棧入棧開銷,只是提供了一種便捷的方式。
C (帶有預設引數的函式引數)預設函式引數
預設引數?在c 中,允許實參的個數與形參的個數不同。在宣告函式原型時,為乙個或者多個形參指定預設值,以後呼叫這個函式時,若省略某乙個實參,c 則自動的以預設值作為相應引數的值。實列說明 includeusing namespace std int add int x 4,int y 7 int ma...
函式預設引數(C )
大家都知道在c 中,我們可以為方法的引數指定乙個預設值,像這樣 void foo int i 100 當我們以這種形式呼叫方法的時候 foo 實際上引數i被賦於了預設值,所以相當於呼叫了foo 100 然而在c 中是不支援引數的預設值的,那麼如果我們要用到類似的功能應該怎麼實現呢?考慮下面這個例子 ...
函式的預設引數
c 中只能定義一次預設值,即原型說明時定義了預設值,後面的函式定義不能有預設值,且預設引數都必須是從右到左定義,呼叫時實參對形參的初始化必須是從左向右的 比如 函式宣告f int i 5 定義了預設值。後面對f的函式定義時就不需要提供預設值了 f int i 即函式定義不能寫成 f int i 5 ...