C 入門學習九 內聯函式

2021-10-07 10:15:59 字數 890 閱讀 8158

內聯(inline)函式:

是c++為了提高程式執行速度所作的一項改進

與常規函式的區別不在於編寫方式,而在於被呼叫時的執行機制不同

編譯器使用函式**替換函式呼叫

使用建議:如果執行函式**的時間比處理函式呼叫機制的時間長,則節省的時間將只佔整個過程的很小一部分,則不建議使用,如果執行**時間很短,內聯呼叫就可以節省大部分時間。用於類的訪問比較多。

函式是乙個可以重複使用的**塊,cpu會一條一條地挨個執行其中的**,cpu在執行主調函式**時如果遇到了被調函式,主調函式就是暫停,cpu轉而執行被調函式的**,被調函式執行完畢後在返回到主調函式,主調函式根據剛才的狀態就像向下執行

乙個c/c++程式的執行過程可以認為·是多個函式之間的相互呼叫過程,它們形成乙個或簡單或複雜的呼叫鏈條,這個鏈條的起點是main(),終點也是,當main()呼叫完了所以的函式,就會返回乙個值來結束自己的生命, 

函式呼叫是有時間和空間開銷的,程式在執行乙個函式之前需要做一些準備工作,要將實參、 區域性變數等等壓入棧中,然後才能執行函式體中的**,然後清理現場,出棧等等。

如果函式體**比較多,需要較長的執行時間,那麼函式呼叫占用的時間可以忽略

如果函式只有一兩條語句,那麼大部分時間就花費在函式呼叫機制上,這種時間開銷就不能忽略,需要用到內聯函式

宣告方法:

在函式宣告前加關鍵字inline  : inline int pow(int,int)

在函式定義前加關鍵字inline  : inline int pow(int,int);//在此處新增有效

C 學習 內聯函式

巨集 可以做兩件事情 1 定義常量 2 定義函式 define a 10 define add x,y x y c 建議用 1 const 替換巨集常量 2 用 內聯函式 替換巨集函式 內聯函式定義 在函式定義前加 inline 關鍵字 注意 在宣告前加無效 巨集函式是在預處理期間進行處理 內聯函式...

c 再學習(內聯函式)

什麼是內聯函式?以inline修飾的函式叫做內聯函式,編譯時c 編譯器會在呼叫內聯函式的地方展開,沒有函式壓棧的開銷,內聯函式提公升程式執行的效率。內聯函式與普通函式執行過程有何不同?普通函式的執行過程中,首先要儲存暫存器的位置,然後傳入引數 這時程式轉到函式處執行,然後再返回,而內聯函式不需要這麼...

學習筆記 C 內聯函式

對於乙個頻繁使用的短小函式,在c語言中應該用巨集定義實現,在c 中用inline實現。巨集定義與內聯函式的不同用法000。在c語言中,寫一手漂亮的巨集定義是非常有必要的,方式出錯 提高 的移植性和可讀性等。尤其是一些常用或通用的功能函式或者 段,這些功能既可以寫成函式,也可以封裝為巨集定義。就功能性...