一、函式引數預設值1.有預設值引數值的引數必須在參數列的最右端
2.函式定義不寫預設值,宣告可寫預設值
3.無實參則用預設值,否則實參覆蓋預設值
二、函式過載
1.定義:在相同作用域內 用同一函式名定義的多個函式 引數個數和引數型別不同
2.思考:編譯器如何識別過載的函式
三、內聯函式
1.關鍵字:inline
2.內聯編譯是建議性的,又編譯器決定 邏輯簡單,呼叫頻繁的函式建議使用內聯 遞迴函式無法使用內聯方式
inline
內聯編譯是建議性的,由編譯器決定。邏輯簡單,呼叫頻繁的函式建議使用內聯。遞迴函式無法使用內聯方式。
總結函式引數預設值 實參覆蓋預設值。 函式過載 名稱相同引數可變。 內聯函式 效率高,由編譯器決定是否使用
inline 函式名
for和while迴圈不要用內聯函式
遞迴函式無法使用內聯方式
c++函式新特性:
宣告函式引數預設值:有預設引數值的引數必須在參數列的最右端(從右向左左邊的可有可無引數)如:
void fun(int i,int j=5,int k)為錯,(int i,int k,int j=5
)為正確
函式在宣告時可以寫引數預設值,但是在定義時不要寫預設值
函式在無實參時則用預設值,有實參時覆蓋預設值
函式過載:
在相同作用域內,用同乙個函式名定義多個函式,函式的引數個數或引數型別不同
過載好處:比如求最大值(有時候要求兩個數的最大值,有時候三個數),根據引數及返回值的不同呼叫最合適的函式
內聯函式:可以省掉2和4兩個步驟的時間,定義內聯函式inline 型別 函式名(引數)
內聯函式只是建議性的,要不要內聯由編譯器決定
邏輯簡單(不包含迴圈),呼叫頻繁的函式建議使用內聯
遞迴函式無法使用內聯方式
如果函式形參有預設值,則引數列表中最右邊的引數必須有預設值!!!!
在函式宣告時可以有函式引數預設值,但是在函式定義的時候最好不要帶預設值!
函式過載,表現在函式返回型別,形參型別、個數
內聯函式,關鍵字inline,呼叫時相當於把函式**在呼叫函式中展開,節省了呼叫時間和返回時間,效率高,但是注意遞迴函式無法作為內聯函式。。。
c 之函式新特性
void fun int i,int j 5 int k 10 void fun int i,int j 5,int k 錯誤,沒有預設值的引數放前面實參可以覆蓋形參的值 什麼是函式過載?在相同的作用域內,用同一函式名定義的多個函式 引數個數和引數型別不同 int getmax int x,int ...
c 函式特性
1.內斂函式在函式的宣告和定義前面都要加上關鍵字 inline 2.內聯函式是c 為提高程式執行速度所做的一項改進,與常規函式區別在於c 編譯器如何將它組合到程式中,所謂的的 內聯 是編譯器將使用相應的函式 來替換函式呼叫,程式無需跳轉到另乙個位置執行 再跳回來。所以速度比常規函式稍快,但是代價是需...
C 函式特性
1.函式引數預設值 比較兩個函式預設值的正確性 void fun int i,int j 5,int k 10 正確 void fun int i,int j 5,int k 錯誤 有函式引數值的引數必須在引數列表的最右端!2.使用時的一些注意事項 為了避免某些編譯器不通過,建議在宣告時給函式加預設...