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

首頁 > 編程 > C > 正文

內聯函數inline與宏定義深入解析

2020-01-26 15:50:47
字體:
來源:轉載
供稿:網友

內聯函數的優越性:
一:inline定義的類的內聯函數,函數的代碼被放入符號表中,在使用時直接進行替換(像宏定義一樣展開),沒有了調用的開銷,效率很高。
二:類的內斂函數是一個真正的函數。
三:使用內聯函數inline可以完全取代表達式形式的宏定義。

例子:

復制代碼 代碼如下:

Class A
{
public:
int readTest()
{
return nTest;
}
void setTest(int i);
};
inline void A::setTest(int i)
{
nTest=i;
};

說明:類A的成員函數readTest()和setTest()都是內聯函數,readTest()函數的定義體被放在類聲明之中,因而readTest()自動轉換成inline函數,setTest函數的定義體在類聲明之外,因此要加上inline關鍵字。

總結inline函數與宏定義的區別:
1、內斂函數在編譯時展開,而宏是在預編譯時就展開了
2、在編譯時內斂函數可以直接被嵌入到目標函數代碼中,而宏只是一個簡單的文本替換
3、內斂函數可以完成諸如類型的檢測、語句是否正確等編譯功能,宏就不具備這種功能
4、宏不是函數,而inline函數是函數
5、宏在定義時要小心處理宏參數,(一般情況是把參數用括弧括起來)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 鄂温| 宣恩县| 博乐市| 兴山县| 云安县| 锡林郭勒盟| 时尚| 唐山市| 勃利县| 都安| 西贡区| 从化市| 安西县| 张家界市| 新余市| 定日县| 马公市| 三穗县| 榆林市| 南靖县| 宜阳县| 新蔡县| 泉州市| 淮北市| 台前县| 阿鲁科尔沁旗| 新沂市| 亚东县| 东乌珠穆沁旗| 鄄城县| 峨眉山市| 常德市| 博兴县| 巨鹿县| 修武县| 漠河县| 静宁县| 北海市| 乌兰察布市| 维西| 雷山县|