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

2021-08-16 02:57:18 字數 2321 閱讀 2887

1.內聯函式

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

內聯函式需要使用關鍵字inline,其語法形式如下:

inline   型別說明符   函式名(含型別說明的形參表)

例1 內聯函式應用舉例

#include

using namespace std;

const double pi=3.14159265358979;

//內聯函式,根據圓的半徑計算其面積

inline double calarea(double radius)

int main()

2.帶預設形參值的函式

函式在定義時可以預先宣告預設的形參值。呼叫時如果給出實參,則用實參初始化形參,如果沒有給出實參,則用預先宣告的預設形參值。例如:

#include

using namespace std;

int add(int x=5,int y=6)

int main()

有預設值的形參必須在形參列表的最後,也就是說,在有預設值的形參右面,不能出現無預設值的形參。因為在函式呼叫中,實參與形參是按從左到右的順序建立對應關係的,例如:

int add(int x,int y=5,int z=6);  //正確

int add(int x=1,int y=5,int z);  //錯誤

int add(int x=1,int y,int z=6);  //錯誤

在相同的作用域內,不允許在同乙個函式的多個宣告中對同乙個引數的預設值重複定義,即使前後定義的值相同也不行。這裡的作用域是指直接包含著函式原型說明的大括號所界定的範圍。注意,函式定義也屬於宣告,這樣,如果乙個函式在定義之前又有原型宣告,預設形參值需要在原型宣告中給出,定義中不能再出現預設形參值。例如:

int add(int x=5,int y=6);

int main()

int add(int x/*=5*/,int y/*=6*/)

習慣   像這樣在函式的定義處,在形參表中以注釋來說明引數的預設值,是一種好習慣。

帶預設形參值的函式舉例

本程式的功能是計算長方體的體積。子函式getvolume是計算體積的函式,有三個形參:length(長)、width(寬)、height(高),其中width和height帶有預設值。主函式中以不同形式呼叫getvolume函式,分析程式的執行結果。

#include

#include

using namespace std;

int getvolume(int length,int width=2,int height=3);

int main()

int getvolume(int length,int width/*=2*/,int height/*=3*/)

c 帶預設形參值的函式

int add int x 5,int y 6 int add int x 5,int y 6,int z 7 int main void 函式宣告或者定義的時候,可以給形參賦一些預設值,呼叫函式時,若沒有給出實參,則按指定的預設值進行工作。函式沒有宣告時,在函式定義中指定形參的預設值 函式既有定義...

C 帶預設形參的函式

先上 int sub int x 8,int y 3 void main 注意事項 1 c 呼叫函式時,引數是自由到左入棧的。因此,預設形參必須從右向左連續定義,並且在乙個預設形參的右邊不能有非預設的形參。int f int a,float b 5.0,char c int d 10 正確 int ...

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

形參帶預設值得函式,在呼叫的時候可以不用傳引數 class base private int b int main 以上是一種引數的情況,當引數有兩個及以上的時候 給預設值的時候必須從右往左給 無論是在定義的時候或者宣告的時候都可以給定形參的預設值,且形參的預設值只能出現一次 int sum int...