国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C++ 內聯函數

2019-11-17 05:14:18
字體:
來源:轉載
供稿:網友

  引入內聯函數的目的是為了解決程序中函數調用的效率問題。

  函數是一種更高級的抽象。它的引入使得編程者只關心函數的功能和使用方法,而不必關心函數功能的具體實現;函數的引入可以減少程序的目標代碼,實現程序代碼和數據的共享。但是,函數調用也會帶來降低效率的問題,因為調用函數實際上將程序執行順序轉移到函數所存放在內存中某個地址,將函數的程序內容執行完后,再返回到轉去執行該函數前的地方。這種轉移操作要求在轉去前要保護現場并記憶執行的地址,轉回后先要恢復現場,并按原來保存地址繼續執行。因此,函數調用要有一定的時間和空間方面的開銷,于是將影響其效率。非凡是對于一些函數體代碼不是很大,但又頻繁地被調用的函數來講,解決其效率問題更為重要。引入內聯函數實際上就是為了解決這一問題。

  在程序編譯時,編譯器將程序中出現的內聯函數的調用表達式用內聯函數的函數體來進行替換。顯然,這種做法不會產生轉去轉回的問題,但是由于在編譯時將函數休中的代碼被替代到程序中,因此會增加目標程序代碼量,進而增加空間開銷,而在時間代銷上不象函數調用時那么大,可見它是以目標代碼的增加為代價來換取時間的節省。

  內聯函數的定義方法

  定義內聯函數的方法很簡單,只要在函數定義的頭前加上要害字inline即可。內聯函數的定義方法與一般函數一樣。如:

inline int add_int (int x, int y, int z)
{

return x+y+z;
}


  在程序中,調用其函數時,該函數在編譯時被替代,而不是像一般函數那樣是在運行時被調用。

  使用內聯函數應注重的事項

  內聯函數具有一般函數的特性,它與一般函數所不同之處公在于函數調用的處理。一般函數進行調用時,要將程序執行權轉到被調用函數中,然后再返回到調用它的函數中;而內聯函數在調用時,是將調用表達式用內聯函數體來替換。在使用內聯函數時,應注重如下幾點:

  1.在內聯函數內不答應用循環語句和開關語句。

  2.內聯函數的定義必須出現在內聯函數第一次被調用之前。

  3.本欄目講到的類結構中所有在類說明內部定義的函數是內聯函數。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨山| 阳新县| 黄龙县| 高安市| 遂宁市| 东乡族自治县| 确山县| 抚州市| 天峨县| 长海县| 石阡县| 澎湖县| 唐河县| 苏尼特右旗| 漯河市| 江源县| 溆浦县| 松滋市| 宝山区| 新建县| 寻甸| 宜春市| 武夷山市| 吉木乃县| 华阴市| 永丰县| 土默特左旗| 博乐市| 诸城市| 卢氏县| 平和县| 将乐县| 巴彦县| 锡林浩特市| 洪泽县| 孟州市| 靖州| 苏州市| 永仁县| 万全县| 邳州市|