函數(shù)調(diào)用是有時間開銷的。如果函數(shù)本身只有幾條語句,執(zhí)行非常快,而且函數(shù)被反復(fù)執(zhí)行很多次,相比之下調(diào)用函數(shù)所產(chǎn)生的這個開銷就會顯得比較大。
為了減少函數(shù)調(diào)用的開銷,引入了內(nèi)聯(lián)函數(shù)機(jī)制。編譯器處理對內(nèi)聯(lián)函數(shù)的調(diào)用語句時,是將整個函數(shù)的代碼插入到調(diào)用語句處,而不會產(chǎn)生調(diào)用函數(shù)的語句。
內(nèi)聯(lián)函數(shù)
#warning
//調(diào)用內(nèi)聯(lián)函數(shù)的弊端:編譯器會將 max 的函數(shù)體都塞在調(diào)用函數(shù)的地方,函數(shù)體中的指令數(shù)量可能比調(diào)用函數(shù)的語句多,那么可執(zhí)行語句可能會增大。
inline int Max(int a,int b)
{
if(a>b) return a;
return b;
}