define 和const的區別

2021-10-17 14:37:24 字數 309 閱讀 5539

(1)就起作用的階段而言: #define是在編譯的預處理階段起作用,而const是在 編譯、執行的時候起作用。

(2)就起作用的方式而言: #define只是簡單的字串替換,沒有型別檢查。而const有對應的資料型別,是要進行判斷的,可以避免一些低階的錯誤。

(3)就儲存方式而言:#define只是進行展開,有多少地方使用,就替換多少次,它定義的巨集常量在記憶體中有若干個備份;const定義的唯讀變數在程式執行過程中只有乙份備份。

(4)從**除錯的方便程度而言: const常量可以進行除錯的,define是不能進行除錯的,因為在預編譯階段就已經替換掉了。

const和define的區別

1 編譯器處理方式不同 define巨集是在預處理階段展開。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行型別檢查。3 儲存方式不同 define巨集僅僅是展開,有多少地方使用,就展開多少...

const和 define的區別

1 const定義的常量是有型別的,define定義的常量是沒有型別的 這就意味著會對前者做乙個型別的檢查,對 define則是做乙個簡單的替換 2 const定義的常量在編譯的時候分配記憶體,而 define定義的常量在預編譯的時候進行替換,不分配記憶體 3 作用域不同,const定義的常變數的作...

const和define的區別

1 編譯器處理方式不同 define巨集是在預處理階段展開。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行型別檢查。3 儲存方式不同 define巨集僅僅是展開,有多少地方使用,就展開多少...