inline及指標基礎

2022-01-18 09:54:17 字數 1119 閱讀 2044

#includeusing namespace std;

void swapwayone(int* x, int* y)

void swapwaytwo(int &x, int &y)

void failedswapway(int x, int y)

inline void inlineswapwayone(int* x, int* y)

inline void inlineswapwaytwo(int &x, int &y)

inline void failedswapthoughinline(int x, int y)

int main(){

int numa = 5, numb = 9;

cout << "original order: " << numa << ", " << numb << endl;

// failedswapway(numa, numb);

// swapwayone(&numa, &numb);

// swapwaytwo(numa, numb);

// inlineswapwayone(&numa, &numb);

inlineswapwaytwo(numa, numb);

// failedswapthoughinline(numa,numb); // inline function's scope is still inside!

cout << "after changed: " << numa << ", " << numb 《由上方測試可知:

對於內聯函式,c++有可能直接用函式體**來替代對函式的呼叫,這一過程稱為函式體的內聯展開。

對於只有幾條語句的小函式來說,與函式的呼叫、返回有關的準備和收尾工作的**往往比函式體本身的**要大得多。因此,對於這類簡單的、使用頻繁的小函式,將之說明為內聯函式可提高執行效率。

內聯函式是直接複製「鑲嵌」到主函式中去的,就是將內聯函式的**直接放在內聯函式的位置上,這與一般函式不同,主函式在呼叫一般函式的時候,是指令跳轉到被呼叫函式的入口位址,執行完被呼叫函式後,指令再跳轉回主函式上繼續執行後面的**;而由於內聯函式是將函式的**直接放在了函式的位置上,所以沒有指令跳轉,指令按順序執行。

內聯函式作用域仍舊在函式體內。

指標基礎及例項

指標 變數 是c c 支援的一種變數。指標變數的值是乙個位址,該位址是乙個16進製制的數。指標變數指向該位址所對應的變數。號表示指標變數。號表示二級指標 指向指標的指標 只有由它宣告的變數可以指向指標變數。type包括c 基本資料型別及自定義型別 type variable name eg int ...

c 基礎學習筆記 內聯函式(inline)

函式呼叫需要建立棧記憶體環境,進行引數傳遞,並產生程式執行轉移,這些工作都需要時間開銷,有些函式使用頻率高,但 卻很短,因此c 提供了inline函式,減少函式呼叫的成本。內聯函式的函式體限制 內聯函式中,不能含有複雜的結構體控制語句,如switch和while等。如果內聯函式有這些語句,則編譯將該...

指標及指標變數

假設i的起始位址為2000,那麼2000就是變數i的指標,p就是乙個指標變數。定義指標變數 型別名 指標變數名 如 int p1 p1是指向整型的指標,定義指標變數時必須指定型別 注意 1.指標變數前面的 表示該變數的型別為指標變數,即指標變數名為p1,而不是 p1。2.指標變數只能用來存放位址,不...