const和 define的區別

2021-07-12 01:10:53 字數 290 閱讀 8081

1 const定義的常量是有型別的,define定義的常量是沒有型別的

這就意味著會對前者做乙個型別的檢查,對#define則是做乙個簡單的替換

2 const定義的常量在編譯的時候分配記憶體,而#define定義的常量在預編譯的時候進行替換,不分配記憶體

3 作用域不同,const定義的常變數的作用域為該變數的作用域,#define的作用域是從定義點到程式結束,當然還可以用#undef取消

#define在底層程式設計中還是很有作用的,但在高層次的程式設計中最好用const,enum,inline來替換define

const和define的區別

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

const和define的區別

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

define和const的區別

1 define是在預處理階段展開,僅僅是展開,不做任何型別檢測 const是在編譯過程中使用,並且做型別檢測 2 define在哪些地方使用,就在哪些地方展開,系統不會為其分配記憶體 const會在記憶體中分配一塊記憶體位址 3 const常量在編譯過程中,只有乙份拷貝,define 存在多少,就...