const 與define 的區別

2021-09-13 14:34:35 字數 311 閱讀 5604

define

1.在預處理階段,將巨集定義進行展開,進行替換

2.無型別,不做型別檢查

const:

1.在定義const 變數時,需要初始化,因為以後就不能改變了

2.對於指標來說可以指定指標為const ,也可以指定指標所指向的內容為const,或二者同時為const

3.在函式宣告中,const 作為形參,表示是乙個輸入引數,不能夠修改。

4.對於類的成員函式,若指定為const ,表示為常函式,不能修改類的成員變數

5.對於類的成員函式,必須指定其返回值為const,使得其不能為左值。

define與const的區別

define 定義的其實是乙個字面常量的名字,在程式中可以把這個名字等價於字面常量使用,在編譯時會被編譯器替換為該字面常量。使用這種方式,只能達到提高程式可讀性的效果,但是安全性不能得到保證。從const 語句的語法格式可以看出,const 語句支援為常量指定型別,編譯器在編譯 時將其型別進行安全檢...

const 與 define的區別

在c程式中,const的用法主要有定義常量 修飾函式引數 修飾函式返回值等3個用處 在c 程式中,它還可以修飾函式的定義體,定義類中某個成員函式為恆態函式,即不改變類中的資料成員 1 const 有資料型別,而巨集沒有資料型別,編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢...

const與define的區別

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