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

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

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

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

1 inline內聯函數

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

注意:

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

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

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

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

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌宁县| 辽宁省| 南靖县| 东方市| 新龙县| 尼勒克县| 苏州市| 大邑县| 柳州市| 翼城县| 中超| 金沙县| 通州区| 丹江口市| 涟源市| 治县。| 大荔县| 鱼台县| 石首市| 桐庐县| 富平县| 循化| 陵川县| 松潘县| 西宁市| 昌都县| 阿拉善盟| 信阳市| 肥西县| 淮滨县| 克山县| 七台河市| 舞阳县| 湟源县| 通化市| 桓仁| 江阴市| 清流县| 鱼台县| 扬州市| 沂南县|