const常量和 define巨集常量的區別

2022-07-15 22:45:17 字數 251 閱讀 4621

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 有些整合化的...