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...