const和define相比,有什麼優點

2021-05-18 15:59:03 字數 675 閱讀 8777

1樓:匿名使用者

const也可以全域性 const的相對define 很大一個優點在於 const的錯誤能在編譯的時候被編譯器發現 而對於define則只是做替換 沒有語法的檢查

2樓:匿名使用者

補充一下~const定義的量具有具體的資料型別,而#define沒有

3樓:匿名使用者

const 是靜態常量#define 是預編譯處理的定義,用處不只是定義靜態常量

const與#define相比有何優點

4樓:匿名使用者

程式設計師面試寶典中的敘述:

1,const 進行型別檢查

2. const支援一些編譯器的斷點除錯(以上兩點#define都不具有)

5樓:匿名使用者

編譯器檢查型別,避免巨集替換錯誤,如 #define t 1+1 t = t * 2; 你的答案應該是4, 但程式會輸出

版3, 因為 1+1*2 = 3, 但是如果你權用const 就不會出現這種問題。而且編譯器會在優化階段就幫你做完了這個計算,在一定程度上提升了執行的效率。

6樓:0白樺樹

如果寫的不高明,#define 有時會有詭異的bug

const和static const的區別

const和static const的區別 一 全域性的區別 const規定變數在全域性中是隻讀的變數,並且它的值無法被修改。static const規定變數在當前的模組中是隻讀的變數,無法再全域性中被其他模組讀取。二 檔案的區別 const定義的指標,不賦初值編譯時不報錯,在初始化時應說明指標的指...

C語言中include和define的順序

define 本身不是定義變數,估計是你 define的識別符號在 include 中有用到,經過巨集代換之後,include的檔案中的語法文字變形了,你換一個識別符號試試。c語言的預來處理是有源前處理器來實現的,它本質上是一個文字處理程式,自上而下 自左而右的的根據預處理指令來進行處理的,順序就是...

C中用const修飾的變數和用static readonl

const 用 const 修飾 符宣告的成員叫常量,是在編譯期初始化並嵌入到客戶端程式 static readonly 用 static readonly 修飾符宣告的成員依然是變數,只不過具有和常量類似的使用方法 通過類進行訪問 初始化後不可以修改。但與常量不同的是這種變數是在執行期初始化 示例...