C 基礎教程九 函式內聯 注重效能

2021-10-18 22:11:22 字數 729 閱讀 4819

說到函式,大家都知道模組化程式設計,幾個函式塊一起作用,遇到問題也會比較容易修改,呼叫也很省時。

但是有乙個問題,因為函式的呼叫是應用了棧機制,進行引數複製,保護呼叫現場。返回時要進行返回賦值,恢復呼叫現場。

這會導致一些資源的占用舉個例子

#include

using

namespace std;

bool

isnumber

(char);

intmain()

bool

isnumber

(char ch)

可以看出,輸入多少個字元,該函式被呼叫了多少次,但是呼叫的開銷就大了好多,於是誕生了函式內聯;

inline+函式體

注意:內聯函式的的宣告必須在函式呼叫之前。因為內聯函式的**在程式執行時是直接嵌在呼叫處的。

#include

using

namespace std;

inline

bool

isnumber

(char);

//內聯宣告

intmain()

bool

isnumber

(char ch)

內聯函式體要盡可能小、結構簡單若函式內有複雜語句例如switch和while。如果有的話,內聯函式則會無視宣告,恢復為正常的函式呼叫。

NLTK基礎教程學習筆記(九)

不同的解析器型別 解析器通常需要對乙個用於表達一組語法規則的輸入字串繼續處理,然後構成乙個或者多個可用於構成某種語法概念的規則。語法是我們衡量乙個句子是否良好的乙份規範說明,而解析器則是乙個用於解讀語法的程式。該程式會通過搜尋各種不同的樹結構空間,找出給定句子的最佳樹結構,下面是一些解析器的運用細節...

C 基礎教程(一)

1.清單 1 1.乙個簡單的歡迎程式 welcome.cs namespace declaration using system program start class class welcomecss 結束。任何位於 之間的語句定義為塊。塊定義了程式元素的活動範圍 或者稱為生命期和可見性 這些概念...

C 基礎教程(變數)

1 巨集常量 define 巨集常量名 常量值 2 const 修飾的變數 1 short 2位元組 2 int 4位元組 3 long win下4位元組 linux下32位系統是4位元組 64位是8位元組 4 long long 八字節可以使用sizeof 求出資料型別占用記憶體大小,具體用法 s...