C++中內聯函數和宏定義的區別

1.內聯函數在編譯時展開,宏在預編譯時展開
2.在編譯的時候,內聯函數可以直接被鑲嵌在目標代碼中,而宏只是一個簡單的文本替換。
3.內聯函數可以完成諸如類型檢測,語句是否正確等編譯功能,宏就不具有這樣的功能。
4.宏不是函數,inline函數是函數,
5.宏在定義時,要小心處理宏參數,否則容易出現二義性,而內聯函數定義時不會出現二義性。
*
補充:內聯函數本質上 就是空間換時候,代碼替換------ 減少調用的開銷-------增加代碼量----內存增大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章