C++中行內函數的用法

weixin_30924079發表於2020-04-04

程式帶呼叫函式需要一定的時間\空間花銷,這就要求在主程式進行過程中呼叫函式前幾下執行指令的地址及其他相關資訊,一邊函式呼叫後能繼續執行.函式呼叫後流程返回先前記下的地址處,並根據記錄的相關資訊回覆,而這都需要消耗時間,若有函式頻繁使用,那麼執行時間會很長,大大降低程式執行效率.因此,我們使用行內函數將函式程式碼直接嵌入到主調函式中,而不是將流程轉出去,減少頻繁呼叫帶來的效率降低的問題.

下以 max(int a, int b) 為例:

#include<iostream>
using namespace std;
inline int max(int,int); #宣告行內函數
int main()
{
    int a=3,b=7;
    cout<<max(a,b);
    return 0;
}

inline int max(int a,int b)
{return a>b?a:b;}

注意,行內函數的使用範圍多是體積小而使用的頻繁的程式碼.像包含遞迴\迴圈\switch語句的函式是無法進行程式碼置換的,而程式碼量多大上千行的函式在呼叫點展開也不現實,在這些情況下,編譯系統會自動忽略inline宣告,按照普通函式處理.

轉載於:https://www.cnblogs.com/Aurora-Borealis/p/11146682.html

相關文章