C 之函式特性

2022-08-14 20:54:20 字數 1153 閱讀 7187

一、函式引數預設值

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.使用時的一些注意事項 為了避免某些編譯器不通過,建議在宣告時給函式加預設...