學過計算機基礎的人都知道,程式設計講究效率。
plus:在c語言中,巨集定義是我們保護效率的一大妙招,(巨集:**處不加驗證的簡單替代,在編譯前將程式中有關字串替換成巨集體)如 defin pi 3.14,用3.14替換pi這個字元在程式執行前。
但是在c++中,由於私有成員不能訪問,巨集作用為成員函式就很無用,因此引入了內斂函式。
內斂函式
定義格式
inline 返回值型別 函式名(形式參數列)
//即普通函式前,加上inline即可成為內聯函式。
作用:像巨集一樣展開,因此不需要花費進行引數傳遞,儲存呼叫狀態和返回位址的時間。
缺點:花費大量空間
內聯函式實際上是一種空間換時間的做法。
plus:c++類內給出函式體定義的成員函式被預設為內聯函式,類外給出函式體的成員函式不是內聯函式。
注意事項:
1:內聯函式不能含有複雜的分支或迴圈結構(如switch和whlie)。
2:遞迴呼叫的函式不能定義為內聯函式。
3:內聯函式**不宜過長。
以下為內聯函式的簡單使用,trans函式的功能是把大小寫字母相互轉換。因為此函式頻繁使用且**簡單,適合定義為內聯函式。
#include
#include//注意新增stdio 忘記則無法呼叫getchar函式
using namespace std;
inline char trans(char ch);
int main()
inline char trans(char ch)
{if(ch>=『a』&&ch<=『z』)
return ch-32;
else if(ch>=『a』&&ch<=『z』)
return ch+32;
else
return ch;
C 內聯函式的使用
對於乙個頻繁使用的短小函式,在c語言中用巨集實現,在c 中應用什麼實現?答案是 內聯函式 1 內聯函式的原理 編譯器將使用相應的函式 替換函式呼叫。例如,如果乙個函式被指定為inline 函式則它將在程式中每個呼叫點上被內聯地展開 int minval2 min i,j int minval2 i ...
c 內聯函式使用技巧
c 語言新增關鍵字 inline,用於將乙個函式宣告為內聯函式。在程式編譯時,編譯器會將內聯函式呼叫處用函式體替換,這一點類似於c語言中的巨集擴充套件。採用內聯函式可以有效避免函式呼叫的開銷,程式執行效率更高。使用內聯函式的缺點就是,如果被宣告為內聯函式的函式體非常大,則編譯器編譯後程式的可執行碼將...
C 內聯函式的說明及使用
在說明內聯函式之前,我們需要先簡單介紹一下函式的執行過程。我們寫的 最終會被編譯成可執行程式,這些程式是機器可以識別的機器語言,然後當我們執行程式時,這些 被載入到記憶體當中。一般在呼叫函式時,函式呼叫後立即儲存該指令的記憶體位址,並把函式的引數拷貝到堆疊空間,然後程式跳轉到該函式起點的記憶體單元,...