C 函式 預設引數的函式

2022-07-26 09:18:15 字數 943 閱讀 3571

1.預設引數的目的

c++可以給函式定義預設引數值。通常,呼叫函式時,要為函式的每個引數給定對應的實參。例如:

void delay(int loops); //函式宣告

void delay(int loops) //函式定義

void point(int a)

void point()

可以用下面的預設引數的函式來替代:

void point(int=3,int=4);
當呼叫「point();」時,即呼叫「point(3,4);」 它是第3個宣告的過載函式。

當呼叫「point(6);」時,即呼叫「point(6,4);」,它是第2個宣告的過載函式。

當呼叫「point(7,8);」時,即呼叫第1個宣告的過載函式

如果一組過載函式(可能帶有預設引數)都允許相同實參個數的呼叫,將會引起呼叫的二義性。例如:

void func(int); //過載函式之一

void func(int,int=4); //過載函式之二,帶有預設引數

void func(int=3,int=4); //過載函式之三,帶有預設引數

func(7); //error: 到底呼叫3個過載函式中的哪個?

func(20,30); //error:到底呼叫後面2個過載函式的哪個?

5.預設值的限定

預設值可以是全域性變數、全域性常量,甚至是乙個函式。例如:

int a=1;

int fun(int);

int g(int x;fun(a)); //ok:允許預設值為函式

預設值不可以是區域性變數,因為預設引數的函式呼叫是在編譯時確定的,而區域性變數的位置與值在編譯時均無法確定。例如:

void fun()

文章**:

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 函式預設引數

使用預設引數時的注意事項 有函式宣告 原型 時,預設引數可以放在函式宣告或者定義中,但只能放在二者之一 double sqrt double f 1.0 函式宣告 double sqrt double f 函式定義 沒有函式 原型 時,預設引數在函式定義時指定.沒有 函式宣告 double sqrt...