C++學習day6之內聯函數

#include<iostream>
using namespace std;

/*
 *宏函數的優缺點
 *宏函數像這樣的:#define SQR(i) ((i)*(i))
 *優點:代碼內嵌,不用發生函數調用。
 *缺點:容易產生歧義,易使text段體積增大,不會進行類型檢查
 */ 

/***
 *
 *函數的優缺點
 *優點:一段高度抽象的邏輯,不易產生歧義,是text段體積小
 *缺點:函數調用的壓棧和出棧的開銷
 */ 

/*
 *所以出現了我們的內聯函數
 *就是夾擱在普通函數和宏函數之間,結合了宏函數和普通函數的優缺點
 *叫內聯函數 inline。
 *但是這裏有個疑問了,既然有這麼多好處,爲何不把所有的函數inline呢
 *優點:避免調用時候的開銷
 *代價:由於內聯函數的函數體在代碼中會出現多個副本,因此會增加代碼的空間
 *本質:以犧牲代碼空間爲代價,提供程序的運行時間的效率。
 *使用場景:函數體很小,而且被頻繁調用
 */ 
inline int sqr(int x)
{
    return x*x;
}
int main()
{
    /*****
     *
     */

    int i=0;
    while(i<5)
    {
        sqr(i);    
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章