程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-內聯函數中可以調用其他函數麼

c++-內聯函數中可以調用其他函數麼

編輯:編程綜合問答
內聯函數中可以調用其他函數麼

比如:

inline void FuncA(_T para)
{
       FuncB(para, para+1);
}

void FuncB(_T paraA, _T paraB)
{
     //Something
}

我試了下是可以通過編譯的,函數運行也正常。
我想知道在編譯時,FuncA調用的地方直接使用一句“ FuncB(para, para+1); ”進行替換,
還是說整個FuncB也會被展開塞進代碼裡?或者說對於這種情況編譯器不會生成內聯函數?

最佳回答:


至於 整個FuncB也會被展開塞進代碼裡?
這是函數FuncB 會不會內聯的問題,和函數FuncA 沒有任何關系
可以內聯的話 FuncB 被內聯進 FuncA
編譯器對內聯成功的代碼,自然不會還原成函數調用了
FuncB不可以內聯,那麼 FuncA 就被內聯成對FuncB函數調用
FuncB可以內聯 那麼內聯 FuncA 就被已經內聯到FunA的內部FuncB內內聯後的代碼取代了,
也就是 FuncB,FuncA 都內聯了

注意到FuncB 沒有inline
所以不是一定會內聯的,所以就看編譯器心情了(設定了),
即便很容易內聯,因為沒有指定,所以就不確定了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved