指定內聯函式的方法很簡單,只需要在函式定義處增加 inline 關鍵字。請看下面的例子:
#include
using namespace std;
//內聯函式,交換兩個數的值
inline void swap(int *a, int *b)
int main()
當函式比較複雜時,函式呼叫的時空開銷可以忽略,大部分的 cpu 時間都會花費在執行函式體**上,所以我們一般是將非常短小的函式宣告為內聯函式。
由於內聯函式比較短小,我們通常的做法是省略函式原型,將整個函式定義(包括函式頭和函式體)放在本應該提供函式原型的地方。
缺點:使用內聯函式的缺點也是非常明顯的,編譯後的程式會存在多份相同的函式拷貝,如果被宣告為內聯函式的函式體非常大,那麼編譯後的程式體積也將會變得很大,所以再次強調,一般只將那些短小的、頻繁呼叫的函式宣告為內聯函式
inline 內聯函式
一 inline關鍵字用來定義乙個類的內聯函式,引入它的主要原因是用它替代c中表示式形式的巨集定義。表示式形式的巨集定義一例 define expressionname var1,var2 var1 var2 var1 var2 為什麼要取代這種形式呢,且聽我道來 1 首先談一下在c中使用這種形式巨...
inline內聯函式
技術類筆試題50 都會問巨集與inline的區別,自己去找找看?1 巨集替換發生在預編譯 2 巨集函式 如果可以這麼叫的話 替換時不會檢查引數,inline函式會檢查 3 巨集一定會發生替換,inline貌似不是強制的,編譯器想不替換也沒關係 4 巨集替換時存在著一些不可避免的陷阱 參見c trap...
inline內聯函式
一 內聯函式 內聯函式是指用inline關鍵字修飾的函式 它與普通函式所不同之處只在於函式呼叫的處理。普通 函式進行呼叫時,要將程式執行權轉到被呼叫函式中,然後再返回到呼叫它的函式中 內聯函式不是在呼叫時發生執行權轉移,而是在編譯時將 函式 體 嵌入在每乙個呼叫處。編譯時類似巨集替換,使用 函式體替...