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
注意:過度使用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
全站熱搜
留言列表