1,const常量有資料型別,而巨集常量沒有資料型別,編譯器可以對前者進行靜態型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能產生意想不到的錯誤(邊際效應)
2,有些整合化的除錯工具可以對const常量進行除錯,但是不能對巨集常量進行除錯。
所以在c++中應盡量使用const來定義符號常量,包括字串常量。
被const修飾的東西都受到c++/c語言實現的靜態型別安全機制的強制保護,可以預防意外修改,提高程式的健壯性。
const常量與 define巨集
define 巨集定義語句 在預處理階段直接做文字替換,不做型別檢查。const c 1 處理時間不同 define所定義的巨集變數在預編譯 預處理 的時候進行替換,const 變數在編譯時確定其值。2 對於 const 變數,系統只在其定義時分配一段記憶體空間,而 define 則是給出了乙個立即...
define巨集常量和const常量的區別
define radius 100 const float radius 100 1 編譯器處理方式不同 define巨集是在預處理階段展開。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行...
define巨集常量和const常量的區別
c 語言可以用const 來定義常量,也可以用 define 來定義常量。但是前者比後者有更多的優點 1 const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會產生意料不到的錯誤 邊際效應 2 有些整合化的...