1). 首先宏是C中引入的一種預處理功能;
2). 內聯(inline)函數是C++中引用的一個新的關鍵字;C++中推薦使用內聯函數來替代宏代碼片段;
3). 內聯函數將函數體直接擴展到調用內聯函數的地方,這樣減少了參數壓棧,跳轉,返回等過程;
4). 由於內聯發生在編譯階段,所以內聯相較宏,是有參數檢查和返回值檢查的,因此使用起來更爲安全;
5). 需要注意的是, inline會向編譯期提出內聯請求,但是是否內聯由編譯期決定(當然可以通過設置編譯器,強制使用內聯);
6). 由於內聯是一種優化方式,在某些情況下,即使沒有顯示的聲明內聯,比如定義在class內部的方法,編譯器也可能將其作爲內聯函數。
7). 內聯函數不能過於複雜,最初C++限定不能有任何形式的循環,不能有過多的條件判斷,不能對函數進行取地址操作等,但是現在的編譯器幾乎沒有什麼限制,基本都可以實現內聯。
更多請參考inline關鍵字
宏和內聯(inline)函數的比較?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
數據結構筆記淺記(十四) 樹
原創
2024-05-14 00:28:41
「Java開發指南」如何用MyEclipse搭建GWT 2.1和Spring?(二)
原創
2024-05-17 12:21:26
Java ThreadPoolShutdown
原創
2024-05-17 02:06:32
通過MVEL表達式和Apache Chain職責鏈模式解耦MQ消息處理節點的實踐應用
原創
2024-05-16 23:56:24
Spring @EnableXxx註解的使用理解
原創
2024-05-16 23:48:06
java將list結果分成3份執行 原創
文文1
2024-05-16 02:09:55
OSS_PIPE:Rust編寫的大規模文件遷移工具
京東雲開發者
2024-05-15 23:59:27
高效調度新篇章:詳解DolphinScheduler 3.2.0生產級集羣搭建
原創
2024-05-15 21:22:54
Spring cloud gateway入門
原創
2024-05-15 11:50:15
JDBC連接openGauss6.0和PostgreSQL16.2性能對比
原創
2024-05-14 11:00:08
爲什麼阿里不建議用excutors創建線程池
原創
2024-05-14 02:07:06
Java遊戲服務器3
osc_hwc3munb
2024-05-14 02:04:28
Android內存管理機制官方詳解文檔
osc_51airx3z
2024-05-14 00:37:42
OSS_PIPE:Rust編寫的大規模文件遷移工具| 京東雲技術團隊
原創
2024-05-13 23:59:27