如果想把乙個函式定義為內聯函式,則需要在函式名前面放置關鍵字inline,當函式被宣告為內聯函式之後,不是按通常的函式呼叫機制進行呼叫,程式在編譯器編譯的時候,編譯器將程式**現的內聯函式的呼叫表示式用內聯函式的函式體進行替換。在類定義中的定義的函式都是內聯函式
優點: 當函式體比較小的時候, 內聯該函式可以令目標**更加高效. 對於訪問函式以及其它函式體比較短, 效能關鍵的函式, 鼓勵使用內聯.
缺點: 濫用內聯將導致程式變慢. 內聯可能使目標**量或增或減, 這取決於內聯函式的大小. 內聯非常短小的訪問函式通常會減少**大小,這其實就是個空間代價換時間的節省。所以內聯函式一般都是1-5行的小函式。
有些函式即使宣告為內聯的也不一定會被編譯器內聯, 包含迴圈或 switch 語句的函式常常是得不償失。
#include using namespace std;
inline int max(int x, int y)
// 程式的主函式
int main( )
/*輸出結果
max (20,10): 20
max (0,200): 200
max (100,1010): 1010
*/
C 內聯函式
1 什麼是內聯函式?內聯函式就是小型函式,犧牲空間來節省函式呼叫的開銷,一般用作比較小的函式,即函式內部沒有迴圈 開關語句等。內聯函式被發明出來就是為了取代c中的巨集,因為巨集是單純的替換而沒有型別檢查所以經常出毛病,2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率...
C 內聯函式
1 什麼是內聯函式?2 為什麼要引入內聯函式?3 為什麼inline能取代巨集?4 內聯函式和巨集的區別?5 什麼時候用內聯函式?6 如何使用內聯函式?7 內聯函式的優缺點?8 如何禁止函式進行內聯?9 注意事項 1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內...
c 內聯函式
1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內。2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率問題。另外,前面我們講到了巨集,裡面有這麼乙個例子 define abs x x 0?x x 當 i出現時,巨集就會歪曲我們的意思...