const与#define相比,区别和优点超详解总结
生活随笔
收集整理的這篇文章主要介紹了
const与#define相比,区别和优点超详解总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:區別
(1)就起作用的階段而言: #define是在編譯的預處理階段起作用,而const是在 編譯、運行的時候起作用。
(2)就起作用的方式而言: #define只是簡單的字符串替換,沒有類型檢查。而const有對應的數據類型,是要進行判斷的,可以避免一些低級的錯誤。?
(3)就存儲方式而言:#define只是進行展開,有多少地方使用,就替換多少次,它定義的宏常量在內存中有若干個備份;const定義的只讀變量在程序運行過程中只有一份備份。
(4)從代碼調試的方便程度而言: const常量可以進行調試的,define是不能進行調試的,因為在預編譯階段就已經替換掉了。
二:const優點
(1)const常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。
(2)有些集成化的調試工具可以對const常量進行調試,但是不能對宏常量進行調試。
(3)const可節省空間,避免不必要的內存分配,提高效率
總結
以上是生活随笔為你收集整理的const与#define相比,区别和优点超详解总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: new/delete与malloc/fr
- 下一篇: C语言:关键字volatile详解!