inline function是C++程式碼在編譯時嵌入呼叫者所在之處的函數。就像巨集一樣,inline function免除了函數呼叫時的而外負擔,增加效率,並且可以讓編譯器對其最佳化(procedural integration)。與macro不同的地方是,inline function只會對所有引數求一次的值,避免某些當在寫macro所不易察覺的錯誤。次外,inline function還會檢測引數的型態,做必要的型別轉換。

注意:過度使用inline function會讓程式碼過於肥胖,於分頁(paging)環境下反而有負面的效能影響。

宣告

1.
    inline void function(int i, float f);
    
2.
    class C
    {
    public:
        inline void functionA(int i);
        void functionB(int i);
    };
    
    inline void functionB(int i) //實做函式時加上inline也是可以的
    {
    }

此外,在debug版本的編譯器是不會將inline function展開的,我想應該是為了能夠在除錯時trace程式碼。
在以下網址有談到很多關於inline function的知識,給大家參考
http://miloyip.seezone.net/?p=47
arrow
arrow
    全站熱搜

    SnakeEater 發表在 痞客邦 留言(0) 人氣()