C 自學筆記 5 之函式特性 與c相比

2021-09-13 03:58:07 字數 1058 閱讀 4339

有預設值的引數必須寫在參數列的最右端,如圖

推薦在宣告的時候指定引數的預設值,定義的時候不指定,如下圖

無實參使用預設值,否則實參覆蓋預設值

在相同作用域內,同一函式名定義的多個函式,引數個數和引數型別不同,如

int

max(

int a,

int b,intc)

float

max(

float a,

float b)

編譯好後實際上是名稱加引數的形式的來區分兩個同名函式。

呼叫的時候根據實參的型別及個數自動識別呼叫函式

int max_int_int_int

float max_float_float

優點:比如對不同格式求最大值,如結構體陣列等等。定義多個同功能呼叫引數格式不同的可以定義同名函式,計算機會自動識別呼叫相應的同名函式。

通函式執行到函式呼叫指令時,程式將在函式呼叫後立即儲存該指令的記憶體位址,並將函式引數複製到堆疊(為此保留的記憶體塊),跳到標記函式起點的記憶體單元,執行函式**(也許還需將返回值放入暫存器中),然後跳回到位址被儲存的指令處。而內聯函式省了②和④步驟,但需要占用更多記憶體

關鍵字inline(宣告及定義前都要加上),如

如果執行函式**的時間比處理函式呼叫機制的時間長,則節省的時間佔比很小。若**執行時間很短,則內聯函式就可以節省函式呼叫的時間。

C 之函式特性

一 函式引數預設值 1.有預設值引數值的引數必須在參數列的最右端 2.函式定義不寫預設值,宣告可寫預設值 3.無實參則用預設值,否則實參覆蓋預設值 二 函式過載 1.定義 在相同作用域內 用同一函式名定義的多個函式 引數個數和引數型別不同 2.思考 編譯器如何識別過載的函式 三 內聯函式 1.關鍵字...

C 自學筆記之異常

argumentexception當向方法提供的引數之一無效時引發的異常。argumentnullexception當將 null 引用 visual basic 中為nothing 傳遞到不接受其作為有效引數的方法時引發的異常。argumentoutofrangeexception當自變數的值超出...

C 自學筆記 15)之隱藏與isA

隱藏就是當父類與子類定義相同的成員時,子類從父類繼承來的成員會隱藏掉,例項化時呼叫子類的成員。如上圖在定義兩個有繼承關係的類後,下圖中例項化後紅色語句第一行是呼叫子類的play,第二行是呼叫父類的play。1 如果是定義了同名的資料成員需要在子類的成員函式中呼叫時區分的話,如父類的string co...