define宏在編譯預處理階段展開, const常量在編譯階段使用
2.類型安全檢查不同
defined宏沒有類型,不做類型檢查,只做簡單的展開
const常量有類型,在編譯階段會執行類型檢查
3.存儲方式不同
define定義的常量在替換後運行過程中會不斷地佔用內存,在內存中有若干份copy,而const定義的常量存儲在數據段,只有一份copy,效率更高。
4.能否調試
define定義的常量不能被調試,const常量可以。
5.效率不同
編譯器通常不爲普通const常量分配存儲空間,而是將它們保存在符號表中,這使得它成爲一個編譯期間的常量,沒有了存儲與讀內存的操作,使得它的效率也很高。
2:類型安全檢查:inline函數是函數:要做類型檢查;