程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ inline(內聯什麼時候使用)

C++ inline(內聯什麼時候使用)

編輯:C++入門知識



這涉及一個效率問題。記住,調用函數的開銷是很大的,所謂的空間開銷是指調用函數前,
先要將原來的函數保存在寄存器(占用寄存器空間)裡面,並在調用結束後恢復。調用函
數時,還要復制實參(占用內存空間)。如果被調用函數一旦調用頻繁,就會花費很多空
間。如果你有一段“短小而頻繁調用的函數”,內聯是個不錯的選擇。
“如果含有復雜的分支或循環結構,我使用inline會有什麼後果?”
事實上,所謂內聯,是編譯器將內聯函數在函數調用點上展開函數代碼。例如 inline
int small(int a,int b) { return a < b ? a : b ; } cout << small ( a, b ) << endl ;
等同於 cout << (a < b ? a : b) << endl; 編譯器會將函數調用語句轉換為函數代碼,
再進行編譯。inline只是你給編譯器提一個建議,希望它將函數內聯,至於它會不會執行就不一
定了。 基本上復雜的函數它是不會同意的,就算同意了,也只會使你的編譯變得更將浪費時間,
而執行速度得不到什麼提升。還有,一些編譯器是不會通過含有遞歸的內聯函數的。 記住
,短小而且反復調用的函數進行內聯就可以了。

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