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

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

08--inline內聯函數和宏替換

2019-11-08 02:23:20
字體:
來源:轉載
供稿:網友

1 inline內聯函數

一般函數在進行調用時,要將程序執行權轉到被調用函數中,然后再返回到調用它的函數中,而內聯函數在調用時,是將調用表達式用內聯函數體來替換,而不是定義在另一個函數體內(也就是編譯器很生硬的將內聯函數里面的執行語句“搬”到調用的地方),所以內聯函數在調用時不發生控制權轉移。

注意:

類 內部實現的函數都是內聯函數,可以不用inline定義類 外部定義的函數必須加inline定義

對于內聯函數,記住下面的結論即可:

結論中的第2條:內聯函數只是一種請求,編譯器不一定不一定允許這種請求,換句話說,編譯系統并非對內聯函數必須使用內聯,而是根據具體情況決定。

2 內聯函數和宏替換的區別對比

由圖可以發現,使用++a作為函數參數,使得宏替換和內聯函數出現了2種截然不同的結果。

宏替換時,編譯器非常機械的將2個變量進行替換,在此題的三目運算符中,第一個判斷過后,a又再加了一次,因此得到的c也是3。

所以,一般情況下,盡量不要使用++a這種作為函數參數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广饶县| 光山县| 故城县| 谷城县| 晴隆县| 阿图什市| 紫阳县| 卓尼县| 朝阳县| 巫溪县| 子洲县| 来宾市| 小金县| 茂名市| 淅川县| 西畴县| 师宗县| 利川市| 荔浦县| 沂南县| 秦皇岛市| 康马县| 卓资县| 屯门区| 开化县| 呼和浩特市| 东源县| 河北省| 新乡市| 任丘市| 雅安市| 白沙| 卓尼县| 乃东县| 东至县| 北宁市| 温宿县| 高平市| 饶阳县| 姜堰市| 青阳县|