預設引數 啞元和內聯

2021-07-13 04:04:43 字數 824 閱讀 4986

1預設引數

(1)基本概念

預設引數就是指在函式宣告時,給函式中的引數指定乙個預設值/預設值,當該函式被呼叫沒有傳遞實參時,則對應的引數可以取預設/預設值。

(2)使用重點:

a.預設引數必須靠右,也就是如果乙個引數帶有預設值時,那麼該引數的右側所有引數都必須帶預設值。

b.使用預設引數時,避免過載所帶來的衝突問題。

c.如果函式的宣告和定義分開,那麼預設引數只能放在函式的宣告部分 ;

2.啞元

(1)基本概念:

只有資料型別,而沒有名稱的函式形參,我們叫做啞元。

(2)使用重點:

a.由於啞元沒有形參名,所以它雖然參與引數的傳遞,但在函式中卻無法使用。

b.啞元也是可以帶有預設值的。

(3)實際作用:

a.相容早期** ;

b.主要用於區分++/--運算子過載版本 ;

3.內聯

(1)基本概念:

內聯就是用函式已編譯好的二進位制**,替換對函式的呼叫指令。

(2)使用重點:

a.使用inline關鍵字修飾函式僅僅表示一種對函式式是內聯優化的期望,但該函式是否被內聯處理取決於編譯器的優化策略,不使用inline關鍵字修飾的函式也可以被內聯處理。

b.遞迴函式不適合內聯

c.多次呼叫的小而簡單函式適合內聯,呼叫次數極少或者大而複雜的函式不適合內聯

(3)內聯函式和帶參巨集的主要區別:

a.內聯是由編譯器在編譯階段展開為彙編指令,而帶參巨集是由預處理器在預處理階段展開為源**;

b.內聯函式也是函式,所有與函式有關的型別檢查以及型別轉換等操作依然進行,而帶參巨集沒有此處理;

C 函式的過載 內聯和預設引數

在c 中,如果需要定義幾個功能相似,而引數型別不同的函式,那麼這樣的幾個函式可以使用相同的函式名,這就是 函式過載 例如,求和函式,對應不同的引數型別,可以定義如下幾個過載函式 sum int a,int b 不寫返回型別,返回整型 double sum double a,double b floa...

c 內聯函式,函式預設引數,佔位引數 一 3

內聯函式 c 推薦使用內聯函式替代巨集 片段,inline必須與函式定義放一起 c 編譯器可將某函式內聯編譯,被內聯編譯的函式稱內聯函式,最終生成的 無內聯函式的定義,編譯器直接將函式體插入函式呼叫的地方,內聯函式無普通函式呼叫時的額外開銷 壓棧,跳轉,返回 編譯器不一定准許函式的內聯請求 內聯函式...

C 之特殊函式 過載 預設引數值和內聯函式

該文為中國大學mooc上北京郵電大學崔毅東和楊談老師主講的 c 程式設計 物件導向高階 筆記整理 作用域的分類 一元作用域解析運算子 當區域性變數與全域性變數相同時,可使用 訪問全域性變數,該運算子被稱為一元作用域解析運算子 include int i 10 intmain return0 過載函式...