函數(shù)聲明或者實現(xiàn)前加inline
內(nèi)聯(lián)函數(shù)相當(dāng)于直接把函數(shù)體內(nèi)的代碼替換調(diào)用處代碼肃叶。
為什么要使用內(nèi)聯(lián)函數(shù)?
函數(shù)調(diào)用是有代價的,每次調(diào)用函數(shù)就會開辟占空間。
/*
什么時候使用inline
1.當(dāng)函數(shù)體積不大
2.頻繁調(diào)用該函數(shù)
*/
inline int sum(int a,int b){
}
注意:
內(nèi)聯(lián)函數(shù)盡量不要超過十行
有些函數(shù)就算聲明成內(nèi)聯(lián)函數(shù)也不會被編譯器編譯為內(nèi)聯(lián)函數(shù)垦巴,比如遞歸函數(shù)。
內(nèi)聯(lián)匯編:
image.png
用ida反匯編 release
對于func 和sum函數(shù)如果不是內(nèi)聯(lián)铭段,可以在functions window看到函數(shù)名骤宣。
image.png
如果對func和sum內(nèi)聯(lián)聲明。
image.png